obsidian-dev-utils 4.10.0 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/lib/@types/compare-versions.d.ts +1 -0
  3. package/dist/lib/Async.cjs +50 -35
  4. package/dist/lib/Async.d.ts +66 -66
  5. package/dist/lib/Blob.cjs +11 -11
  6. package/dist/lib/Blob.d.ts +7 -7
  7. package/dist/lib/Error.cjs +17 -17
  8. package/dist/lib/Error.d.ts +14 -14
  9. package/dist/lib/Function.cjs +8 -8
  10. package/dist/lib/Function.d.ts +12 -12
  11. package/dist/lib/Object.cjs +36 -36
  12. package/dist/lib/Object.d.ts +55 -55
  13. package/dist/lib/Path.cjs +16 -16
  14. package/dist/lib/Path.d.ts +28 -28
  15. package/dist/lib/String.cjs +35 -35
  16. package/dist/lib/String.d.ts +55 -55
  17. package/dist/lib/ValueProvider.cjs +4 -4
  18. package/dist/lib/obsidian/App.cjs +6 -6
  19. package/dist/lib/obsidian/App.d.ts +7 -7
  20. package/dist/lib/obsidian/AttachmentPath.cjs +9 -9
  21. package/dist/lib/obsidian/AttachmentPath.d.ts +8 -8
  22. package/dist/lib/obsidian/Backlink.cjs +28 -28
  23. package/dist/lib/obsidian/Backlink.d.ts +22 -22
  24. package/dist/lib/obsidian/Callout.cjs +13 -13
  25. package/dist/lib/obsidian/Dataview.cjs +40 -40
  26. package/dist/lib/obsidian/Dataview.d.ts +69 -69
  27. package/dist/lib/obsidian/FileChange.cjs +7 -7
  28. package/dist/lib/obsidian/FileChange.d.ts +22 -22
  29. package/dist/lib/obsidian/FileManager.cjs +18 -18
  30. package/dist/lib/obsidian/FileManager.d.ts +11 -11
  31. package/dist/lib/obsidian/FileSystem.cjs +31 -31
  32. package/dist/lib/obsidian/FileSystem.d.ts +41 -41
  33. package/dist/lib/obsidian/FrontMatter.cjs +1 -1
  34. package/dist/lib/obsidian/FrontMatter.d.ts +6 -6
  35. package/dist/lib/obsidian/Link.cjs +154 -154
  36. package/dist/lib/obsidian/Link.d.ts +163 -163
  37. package/dist/lib/obsidian/MetadataCache.cjs +61 -61
  38. package/dist/lib/obsidian/MetadataCache.d.ts +28 -28
  39. package/dist/lib/obsidian/Modal/Alert.cjs +7 -7
  40. package/dist/lib/obsidian/Modal/Confirm.cjs +7 -7
  41. package/dist/lib/obsidian/Modal/Prompt.cjs +15 -15
  42. package/dist/lib/obsidian/Modal/SelectItem.cjs +7 -7
  43. package/dist/lib/obsidian/ObsidianSettings.cjs +4 -4
  44. package/dist/lib/obsidian/ObsidianSettings.d.ts +6 -6
  45. package/dist/lib/obsidian/Plugin/Plugin.cjs +6 -6
  46. package/dist/lib/obsidian/Plugin/Plugin.d.ts +7 -7
  47. package/dist/lib/obsidian/Plugin/PluginBase.cjs +52 -52
  48. package/dist/lib/obsidian/Plugin/PluginBase.d.ts +29 -29
  49. package/dist/lib/obsidian/Plugin/PluginSettings.cjs +4 -4
  50. package/dist/lib/obsidian/Plugin/PluginSettings.d.ts +8 -8
  51. package/dist/lib/obsidian/Plugin/ValueComponent.cjs +1 -1
  52. package/dist/lib/obsidian/Plugin/ValueComponent.d.ts +51 -51
  53. package/dist/lib/obsidian/Queue.cjs +76 -0
  54. package/dist/lib/obsidian/Queue.d.ts +28 -0
  55. package/dist/lib/obsidian/Reference.cjs +12 -12
  56. package/dist/lib/obsidian/Reference.d.ts +7 -7
  57. package/dist/lib/obsidian/RenameDeleteHandler.cjs +130 -130
  58. package/dist/lib/obsidian/Vault.cjs +116 -116
  59. package/dist/lib/obsidian/Vault.d.ts +70 -70
  60. package/dist/lib/obsidian/index.cjs +4 -4
  61. package/dist/lib/obsidian/index.d.ts +1 -1
  62. package/dist/lib/scripts/CliUtils.cjs +30 -30
  63. package/dist/lib/scripts/CliUtils.d.ts +11 -11
  64. package/dist/lib/scripts/ESLint/@types/@guardian__eslint-plugin-tsdoc-required.d.ts +2 -0
  65. package/dist/lib/scripts/ESLint/@types/eslint-plugin-modules-newlines.d.ts +2 -0
  66. package/dist/lib/scripts/ESLint/@types/eslint-plugin-verify-tsdoc.d.ts +2 -0
  67. package/dist/lib/scripts/ESLint/eslint.config.cjs +2 -1
  68. package/dist/lib/scripts/Exec.cjs +1 -1
  69. package/dist/lib/scripts/Exec.d.ts +21 -21
  70. package/dist/lib/scripts/Fs.cjs +11 -11
  71. package/dist/lib/scripts/Fs.d.ts +13 -13
  72. package/dist/lib/scripts/JSON.cjs +7 -7
  73. package/dist/lib/scripts/JSON.d.ts +16 -16
  74. package/dist/lib/scripts/Npm.cjs +13 -13
  75. package/dist/lib/scripts/Npm.d.ts +43 -43
  76. package/dist/lib/scripts/Root.cjs +4 -4
  77. package/dist/lib/scripts/Root.d.ts +8 -8
  78. package/dist/lib/scripts/build.cjs +4 -4
  79. package/dist/lib/scripts/build.d.ts +8 -8
  80. package/dist/lib/scripts/cli.cjs +1 -1
  81. package/dist/lib/scripts/esbuild/Dependency.cjs +21 -21
  82. package/dist/lib/scripts/esbuild/Dependency.d.ts +6 -6
  83. package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.cjs +5 -5
  84. package/dist/lib/scripts/version.cjs +134 -134
  85. package/dist/lib/scripts/version.d.ts +70 -70
  86. package/package.json +11 -11
  87. package/dist/lib/obsidian/ChainedPromise.cjs +0 -59
  88. package/dist/lib/obsidian/ChainedPromise.d.ts +0 -26
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 4.12.0
4
+
5
+ - Don't allow default exports
6
+
7
+ ## 4.11.0
8
+
9
+ - Lint
10
+ - Update libs
11
+ - Refactor to Queue
12
+ - Log timeout
13
+
3
14
  ## 4.10.0
4
15
 
5
16
  - ChainedPromise
@@ -32,5 +32,6 @@ declare module 'compare-versions' {
32
32
  CompareOperator: CompareOperator;
33
33
  };
34
34
 
35
+ // eslint-disable-next-line import-x/no-default-export
35
36
  export default compareVersions;
36
37
  }
@@ -41,6 +41,37 @@ __export(Async_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(Async_exports);
43
43
  var import_Error = require('./Error.cjs');
44
+ async function addErrorHandler(asyncFn) {
45
+ try {
46
+ await asyncFn();
47
+ } catch (asyncError) {
48
+ (0, import_Error.emitAsyncErrorEvent)(asyncError);
49
+ }
50
+ }
51
+ async function asyncFilter(arr, predicate) {
52
+ const predicateResults = await asyncMap(arr, predicate);
53
+ return arr.filter((_, index) => predicateResults[index]);
54
+ }
55
+ async function asyncFlatMap(arr, callback) {
56
+ return (await asyncMap(arr, callback)).flat();
57
+ }
58
+ async function asyncMap(arr, callback) {
59
+ return await Promise.all(arr.map(callback));
60
+ }
61
+ function convertAsyncToSync(asyncFunc) {
62
+ return (...args) => {
63
+ invokeAsyncSafely(() => asyncFunc(...args));
64
+ };
65
+ }
66
+ function convertSyncToAsync(syncFn) {
67
+ return (...args) => Promise.resolve().then(() => syncFn(...args));
68
+ }
69
+ function invokeAsyncSafely(asyncFn) {
70
+ void addErrorHandler(asyncFn);
71
+ }
72
+ function marksAsTerminateRetry(error) {
73
+ return Object.assign(error, { __terminateRetry: true });
74
+ }
44
75
  async function retryWithTimeout(fn, retryOptions = {}) {
45
76
  const stackTrace = (0, import_Error.getStackTrace)();
46
77
  const DEFAULT_RETRY_OPTIONS = {
@@ -77,44 +108,31 @@ async function retryWithTimeout(fn, retryOptions = {}) {
77
108
  }
78
109
  });
79
110
  }
111
+ async function runWithTimeout(timeoutInMilliseconds, fn) {
112
+ let timedOut = false;
113
+ let result = null;
114
+ await Promise.race([run(), timeout2()]);
115
+ if (timedOut) {
116
+ console.error(`Timed out in ${timeoutInMilliseconds.toString()} milliseconds`, { fn });
117
+ throw new Error("Timed out");
118
+ }
119
+ return result;
120
+ async function run() {
121
+ result = await fn();
122
+ timedOut = false;
123
+ }
124
+ async function timeout2() {
125
+ await sleep(timeoutInMilliseconds);
126
+ timedOut = true;
127
+ }
128
+ }
80
129
  async function sleep(milliseconds) {
81
130
  await new Promise((resolve) => setTimeout(resolve, milliseconds));
82
131
  }
83
- async function runWithTimeout(timeoutInMilliseconds, fn) {
84
- return await Promise.race([fn(), timeout(timeoutInMilliseconds)]);
85
- }
86
132
  async function timeout(timeoutInMilliseconds) {
87
133
  await sleep(timeoutInMilliseconds);
88
134
  throw new Error(`Timed out in ${timeoutInMilliseconds.toString()} milliseconds`);
89
135
  }
90
- function invokeAsyncSafely(asyncFn) {
91
- void addErrorHandler(asyncFn);
92
- }
93
- async function addErrorHandler(asyncFn) {
94
- try {
95
- await asyncFn();
96
- } catch (asyncError) {
97
- (0, import_Error.emitAsyncErrorEvent)(asyncError);
98
- }
99
- }
100
- function convertAsyncToSync(asyncFunc) {
101
- return (...args) => {
102
- invokeAsyncSafely(() => asyncFunc(...args));
103
- };
104
- }
105
- function convertSyncToAsync(syncFn) {
106
- return (...args) => Promise.resolve().then(() => syncFn(...args));
107
- }
108
- async function asyncMap(arr, callback) {
109
- return await Promise.all(arr.map(callback));
110
- }
111
- async function asyncFilter(arr, predicate) {
112
- const predicateResults = await asyncMap(arr, predicate);
113
- return arr.filter((_, index) => predicateResults[index]);
114
- }
115
- async function asyncFlatMap(arr, callback) {
116
- return (await asyncMap(arr, callback)).flat();
117
- }
118
136
  async function toArray(iter) {
119
137
  const arr = [];
120
138
  for await (const item of iter) {
@@ -122,9 +140,6 @@ async function toArray(iter) {
122
140
  }
123
141
  return arr;
124
142
  }
125
- function marksAsTerminateRetry(error) {
126
- return Object.assign(error, { __terminateRetry: true });
127
- }
128
143
  // Annotate the CommonJS export names for ESM import in node:
129
144
  0 && (module.exports = {
130
145
  addErrorHandler,
@@ -141,4 +156,4 @@ function marksAsTerminateRetry(error) {
141
156
  timeout,
142
157
  toArray
143
158
  });
144
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0FzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBc3luY1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7XG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGdldFN0YWNrVHJhY2UsXG4gIHByaW50RXJyb3Jcbn0gZnJvbSAnLi9FcnJvci50cyc7XG5cbi8qKlxuICogQSB0eXBlIHJlcHJlc2VudGluZyBhIHZhbHVlIHRoYXQgY2FuIGVpdGhlciBiZSBhIGRpcmVjdCB2YWx1ZSBvciBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoYXQgdmFsdWUuXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIE1heWJlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gfCBUO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSByZXRyeSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRlbGF5IGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICAgKi9cbiAgcmV0cnlEZWxheUluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmV0cnkgdGhlIGZ1bmN0aW9uIG9uIGVycm9yLlxuICAgKi9cbiAgc2hvdWxkUmV0cnlPbkVycm9yOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBnaXZpbmcgdXAgb24gcmV0cnlpbmcuXG4gICAqL1xuICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXRyaWVzIHRoZSBwcm92aWRlZCBmdW5jdGlvbiB1bnRpbCBpdCByZXR1cm5zIHRydWUgb3IgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC5cbiAqXG4gKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gcmV0cnkuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcGFyYW1ldGVycyB0byBjb25maWd1cmUgdGhlIHJldHJ5IGJlaGF2aW9yLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dChmbjogKCkgPT4gTWF5YmVQcm9taXNlPGJvb2xlYW4+LCByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBnZXRTdGFja1RyYWNlKCk7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUmV0cnlPcHRpb25zID0ge1xuICAgIHJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kczogMTAwLFxuICAgIHNob3VsZFJldHJ5T25FcnJvcjogdHJ1ZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDUwMDBcbiAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFJldHJ5T3B0aW9ucyA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgYXdhaXQgcnVuV2l0aFRpbWVvdXQob3ZlcnJpZGRlbk9wdGlvbnMudGltZW91dEluTWlsbGlzZWNvbmRzLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGF0dGVtcHQgPSAwO1xuICAgIGZvciAoOyA7KSB7XG4gICAgICBhdHRlbXB0Kys7XG4gICAgICBsZXQgaXNTdWNjZXNzOiBib29sZWFuO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaXNTdWNjZXNzID0gYXdhaXQgZm4oKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghb3ZlcnJpZGRlbk9wdGlvbnMuc2hvdWxkUmV0cnlPbkVycm9yIHx8IChlcnJvciBhcyBQYXJ0aWFsPFRlcm1pbmF0ZVJldHJ5PikuX190ZXJtaW5hdGVSZXRyeSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHByaW50RXJyb3IoZXJyb3IpO1xuICAgICAgICBpc1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N1Y2Nlc3MpIHtcbiAgICAgICAgaWYgKGF0dGVtcHQgPiAxKSB7XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhgUmV0cnkgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBhZnRlciAke2F0dGVtcHQudG9TdHJpbmcoKX0gYXR0ZW1wdHNgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUuZGVidWcoYFJldHJ5IGF0dGVtcHQgJHthdHRlbXB0LnRvU3RyaW5nKCl9IGNvbXBsZXRlZCB1bnN1Y2Nlc3NmdWxseS4gVHJ5aW5nIGFnYWluIGluICR7b3ZlcnJpZGRlbk9wdGlvbnMucmV0cnlEZWxheUluTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHtcbiAgICAgICAgZm4sXG4gICAgICAgIHN0YWNrVHJhY2VcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgc2xlZXAob3ZlcnJpZGRlbk9wdGlvbnMucmV0cnlEZWxheUluTWlsbGlzZWNvbmRzKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIERlbGF5cyBleGVjdXRpb24gZm9yIGEgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkZWxheS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNsZWVwKG1pbGxpc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2l0aCBhIHRpbWVvdXQuIElmIHRoZSBmdW5jdGlvbiBkb2VzIG5vdCBjb21wbGV0ZSB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lLCBpdCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgdGltZWQgb3V0LlxuICpcbiAqIEB0eXBlUGFyYW0gUiAtIFRoZSB0eXBlIG9mIHRoZSByZXN1bHQgZnJvbSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uLlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIG9yIHJlamVjdHMgaWYgaXQgdGltZXMgb3V0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2l0aFRpbWVvdXQ8Uj4odGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXIsIGZuOiAoKSA9PiBNYXliZVByb21pc2U8Uj4pOiBQcm9taXNlPFI+IHtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UucmFjZShbZm4oKSwgdGltZW91dCh0aW1lb3V0SW5NaWxsaXNlY29uZHMpXSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIFByb21pc2UgdGhhdCByZWplY3RzIGFmdGVyIHRoZSBzcGVjaWZpZWQgdGltZW91dCBwZXJpb2QuXG4gKlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lb3V0IHBlcmlvZCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCBhbHdheXMgcmVqZWN0cyB3aXRoIGEgdGltZW91dCBlcnJvci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRpbWVvdXQodGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPG5ldmVyPiB7XG4gIGF3YWl0IHNsZWVwKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gIHRocm93IG5ldyBFcnJvcihgVGltZWQgb3V0IGluICR7dGltZW91dEluTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2ApO1xufVxuXG4vKipcbiAqIEludm9rZXMgYSBQcm9taXNlIGFuZCBzYWZlbHkgaGFuZGxlcyBhbnkgZXJyb3JzIGJ5IGNhdGNoaW5nIHRoZW0gYW5kIGVtaXR0aW5nIGFuIGFzeW5jIGVycm9yIGV2ZW50LlxuICpcbiAqIEBwYXJhbSBhc3luY0ZuIC0gVGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBpbnZva2Ugc2FmZWx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlQXN5bmNTYWZlbHkoYXN5bmNGbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPik6IHZvaWQge1xuICB2b2lkIGFkZEVycm9ySGFuZGxlcihhc3luY0ZuKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGVycm9yIGhhbmRsZXIgdG8gYSBQcm9taXNlIHRoYXQgY2F0Y2hlcyBhbnkgZXJyb3JzIGFuZCBlbWl0cyBhbiBhc3luYyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNGbiAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYWRkIGFuIGVycm9yIGhhbmRsZXIgdG8uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gY29tcGxldGVzIG9yIGVtaXRzIGFzeW5jIGVycm9yIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVyKGFzeW5jRm46ICgpID0+IFByb21pc2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhc3luY0ZuKCk7XG4gIH0gY2F0Y2ggKGFzeW5jRXJyb3IpIHtcbiAgICBlbWl0QXN5bmNFcnJvckV2ZW50KGFzeW5jRXJyb3IpO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGEgc3luY2hyb25vdXMgb25lIGJ5IGF1dG9tYXRpY2FsbHkgaGFuZGxpbmcgdGhlIFByb21pc2UgcmVqZWN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJncyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBmdW5jdGlvbiBhY2NlcHRzLlxuICogQHBhcmFtIGFzeW5jRnVuYyAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB3cmFwcyB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIGluIGEgc3luY2hyb25vdXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEFzeW5jVG9TeW5jPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KGFzeW5jRnVuYzogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8dW5rbm93bj4pOiAoLi4uYXJnczogQXJncykgPT4gdm9pZCB7XG4gIHJldHVybiAoLi4uYXJnczogQXJncyk6IHZvaWQgPT4ge1xuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IGFzeW5jRnVuYyguLi5hcmdzKSk7XG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBhbiBhc3luY2hyb25vdXMgb25lIGJ5IHdyYXBwaW5nIGl0IGluIGEgUHJvbWlzZS5cbiAqXG4gKiBAdHlwZVBhcmFtIEFyZ3MgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZnVuY3Rpb24gYWNjZXB0cy5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0IC0gVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlLlxuICogQHBhcmFtIHN5bmNGbiAtIFRoZSBzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHdyYXBzIHRoZSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhbiBhc3luY2hyb25vdXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFN5bmNUb0FzeW5jPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10sIFJlc3VsdD4oc3luY0ZuOiAoLi4uYXJnczogQXJncykgPT4gUmVzdWx0KTogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8UmVzdWx0PiB7XG4gIHJldHVybiAoLi4uYXJnczogQXJncyk6IFByb21pc2U8UmVzdWx0PiA9PiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHN5bmNGbiguLi5hcmdzKSk7XG59XG5cbi8qKlxuICogTWFwcyBvdmVyIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBhcHBseWluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZWFjaCBlbGVtZW50LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEB0eXBlUGFyYW0gVSAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIG1hcCBvdmVyLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNNYXA8VCwgVT4oYXJyOiBUW10sIGNhbGxiYWNrOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IE1heWJlUHJvbWlzZTxVPik6IFByb21pc2U8VVtdPiB7XG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhcnIubWFwKGNhbGxiYWNrKSk7XG59XG5cbi8qKlxuICogRmlsdGVycyBhbiBhcnJheSBhc3luY2hyb25vdXNseSwga2VlcGluZyBvbmx5IHRoZSBlbGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIHByb3ZpZGVkIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgaW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIGZpbHRlci5cbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBUaGUgcHJlZGljYXRlIGZ1bmN0aW9uIHRvIHRlc3QgZWFjaCBlbGVtZW50LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBlbGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRmlsdGVyPFQ+KGFycjogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPGJvb2xlYW4+KTogUHJvbWlzZTxUW10+IHtcbiAgY29uc3QgcHJlZGljYXRlUmVzdWx0cyA9IGF3YWl0IGFzeW5jTWFwKGFyciwgcHJlZGljYXRlKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKF8sIGluZGV4KSA9PiBwcmVkaWNhdGVSZXN1bHRzW2luZGV4XSk7XG59XG5cbi8qKlxuICogTWFwcyBvdmVyIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBhcHBseWluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZWFjaCBlbGVtZW50LCBhbmQgdGhlbiBmbGF0dGVucyB0aGUgcmVzdWx0cyBpbnRvIGEgc2luZ2xlIGFycmF5LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEB0eXBlUGFyYW0gVSAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIG1hcCBvdmVyIGFuZCBmbGF0dGVuLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSBmbGF0dGVuZWQgYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNGbGF0TWFwPFQsIFU+KGFycjogVFtdLCBjYWxsYmFjazogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBNYXliZVByb21pc2U8VVtdPik6IFByb21pc2U8VVtdPiB7XG4gIHJldHVybiAoYXdhaXQgYXN5bmNNYXAoYXJyLCBjYWxsYmFjaykpLmZsYXQoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBBc3luY0l0ZXJhYmxlSXRlcmF0b3IgdG8gYW4gYXJyYXkgYnkgY29uc3VtaW5nIGFsbCBpdHMgZWxlbWVudHMuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgcHJvZHVjZWQgYnkgdGhlIEFzeW5jSXRlcmFibGVJdGVyYXRvci5cbiAqIEBwYXJhbSBpdGVyIC0gVGhlIEFzeW5jSXRlcmFibGVJdGVyYXRvciB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSBBc3luY0l0ZXJhYmxlSXRlcmF0b3IuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b0FycmF5PFQ+KGl0ZXI6IEFzeW5jSXRlcmFibGVJdGVyYXRvcjxUPik6IFByb21pc2U8VFtdPiB7XG4gIGNvbnN0IGFycjogVFtdID0gW107XG4gIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBpdGVyKSB7XG4gICAgYXJyLnB1c2goaXRlbSk7XG4gIH1cbiAgcmV0dXJuIGFycjtcbn1cblxuLyoqXG4gKiBBIG1hcmtlciBpbnRlcmZhY2UgdG8gaW5kaWNhdGUgdGhhdCBhbiBlcnJvciBzaG91bGQgdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcm1pbmF0ZVJldHJ5IHtcbiAgLyoqXG4gICAqIEEgbWFya2VyIHByb3BlcnR5IHRvIGluZGljYXRlIHRoYXQgYW4gZXJyb3Igc2hvdWxkIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAgICovXG4gIF9fdGVybWluYXRlUmV0cnk6IHRydWU7XG59XG5cbi8qKlxuICogTWFya3MgYW4gZXJyb3IgdG8gdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBtYXJrIHRvIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqIEByZXR1cm5zIEFuIGVycm9yIHRoYXQgc2hvdWxkIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtzQXNUZXJtaW5hdGVSZXRyeTxURXJyb3IgZXh0ZW5kcyBFcnJvcj4oZXJyb3I6IFRFcnJvcik6IFRlcm1pbmF0ZVJldHJ5ICYgVEVycm9yIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZXJyb3IsIHsgX190ZXJtaW5hdGVSZXRyeTogdHJ1ZSB9IGFzIFRlcm1pbmF0ZVJldHJ5KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0EsbUJBSU87QUFtQ1AsZUFBc0IsaUJBQWlCLElBQWlDLGVBQXNDLENBQUMsR0FBa0I7QUFDL0gsUUFBTSxpQkFBYSw0QkFBYztBQUNqQyxRQUFNLHdCQUFzQztBQUFBLElBQzFDLDBCQUEwQjtBQUFBLElBQzFCLG9CQUFvQjtBQUFBLElBQ3BCLHVCQUF1QjtBQUFBLEVBQ3pCO0FBQ0EsUUFBTSxvQkFBa0MsRUFBRSxHQUFHLHVCQUF1QixHQUFHLGFBQWE7QUFDcEYsUUFBTSxlQUFlLGtCQUFrQix1QkFBdUIsWUFBWTtBQUN4RSxRQUFJLFVBQVU7QUFDZCxlQUFVO0FBQ1I7QUFDQSxVQUFJO0FBQ0osVUFBSTtBQUNGLG9CQUFZLE1BQU0sR0FBRztBQUFBLE1BQ3ZCLFNBQVMsT0FBTztBQUNkLFlBQUksQ0FBQyxrQkFBa0Isc0JBQXVCLE1BQWtDLGtCQUFrQjtBQUNoRyxnQkFBTTtBQUFBLFFBQ1I7QUFDQSxxQ0FBVyxLQUFLO0FBQ2hCLG9CQUFZO0FBQUEsTUFDZDtBQUNBLFVBQUksV0FBVztBQUNiLFlBQUksVUFBVSxHQUFHO0FBQ2Ysa0JBQVEsTUFBTSxzQ0FBc0MsUUFBUSxTQUFTLENBQUMsV0FBVztBQUFBLFFBQ25GO0FBQ0E7QUFBQSxNQUNGO0FBRUEsY0FBUSxNQUFNLGlCQUFpQixRQUFRLFNBQVMsQ0FBQyw4Q0FBOEMsa0JBQWtCLHlCQUF5QixTQUFTLENBQUMsaUJBQWlCO0FBQUEsUUFDbks7QUFBQSxRQUNBO0FBQUEsTUFDRixDQUFDO0FBQ0QsWUFBTSxNQUFNLGtCQUFrQix3QkFBd0I7QUFBQSxJQUN4RDtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUUEsZUFBc0IsTUFBTSxjQUFxQztBQUMvRCxRQUFNLElBQUksUUFBUSxDQUFDLFlBQVksV0FBVyxTQUFTLFlBQVksQ0FBQztBQUNsRTtBQVVBLGVBQXNCLGVBQWtCLHVCQUErQixJQUF1QztBQUM1RyxTQUFPLE1BQU0sUUFBUSxLQUFLLENBQUMsR0FBRyxHQUFHLFFBQVEscUJBQXFCLENBQUMsQ0FBQztBQUNsRTtBQVFBLGVBQXNCLFFBQVEsdUJBQStDO0FBQzNFLFFBQU0sTUFBTSxxQkFBcUI7QUFDakMsUUFBTSxJQUFJLE1BQU0sZ0JBQWdCLHNCQUFzQixTQUFTLENBQUMsZUFBZTtBQUNqRjtBQU9PLFNBQVMsa0JBQWtCLFNBQXVDO0FBQ3ZFLE9BQUssZ0JBQWdCLE9BQU87QUFDOUI7QUFRQSxlQUFzQixnQkFBZ0IsU0FBZ0Q7QUFDcEYsTUFBSTtBQUNGLFVBQU0sUUFBUTtBQUFBLEVBQ2hCLFNBQVMsWUFBWTtBQUNuQiwwQ0FBb0IsVUFBVTtBQUFBLEVBQ2hDO0FBQ0Y7QUFTTyxTQUFTLG1CQUEyQyxXQUF5RTtBQUNsSSxTQUFPLElBQUksU0FBcUI7QUFDOUIsc0JBQWtCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztBQUFBLEVBQzVDO0FBQ0Y7QUFVTyxTQUFTLG1CQUFtRCxRQUF1RTtBQUN4SSxTQUFPLElBQUksU0FBZ0MsUUFBUSxRQUFRLEVBQUUsS0FBSyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDekY7QUFXQSxlQUFzQixTQUFlLEtBQVUsVUFBa0Y7QUFDL0gsU0FBTyxNQUFNLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDO0FBQzVDO0FBVUEsZUFBc0IsWUFBZSxLQUFVLFdBQXlGO0FBQ3RJLFFBQU0sbUJBQW1CLE1BQU0sU0FBUyxLQUFLLFNBQVM7QUFDdEQsU0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLFVBQVUsaUJBQWlCLEtBQUssQ0FBQztBQUN6RDtBQVdBLGVBQXNCLGFBQW1CLEtBQVUsVUFBb0Y7QUFDckksVUFBUSxNQUFNLFNBQVMsS0FBSyxRQUFRLEdBQUcsS0FBSztBQUM5QztBQVNBLGVBQXNCLFFBQVcsTUFBOEM7QUFDN0UsUUFBTSxNQUFXLENBQUM7QUFDbEIsbUJBQWlCLFFBQVEsTUFBTTtBQUM3QixRQUFJLEtBQUssSUFBSTtBQUFBLEVBQ2Y7QUFDQSxTQUFPO0FBQ1Q7QUFrQk8sU0FBUyxzQkFBNEMsT0FBd0M7QUFDbEcsU0FBTyxPQUFPLE9BQU8sT0FBTyxFQUFFLGtCQUFrQixLQUFLLENBQW1CO0FBQzFFOyIsCiAgIm5hbWVzIjogW10KfQo=
159
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0FzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBc3luY1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7XG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGdldFN0YWNrVHJhY2UsXG4gIHByaW50RXJyb3Jcbn0gZnJvbSAnLi9FcnJvci50cyc7XG5cbi8qKlxuICogQSB0eXBlIHJlcHJlc2VudGluZyBhIHZhbHVlIHRoYXQgY2FuIGVpdGhlciBiZSBhIGRpcmVjdCB2YWx1ZSBvciBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoYXQgdmFsdWUuXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIE1heWJlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gfCBUO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSByZXRyeSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRlbGF5IGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICAgKi9cbiAgcmV0cnlEZWxheUluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmV0cnkgdGhlIGZ1bmN0aW9uIG9uIGVycm9yLlxuICAgKi9cbiAgc2hvdWxkUmV0cnlPbkVycm9yOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBnaXZpbmcgdXAgb24gcmV0cnlpbmcuXG4gICAqL1xuICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIG1hcmtlciBpbnRlcmZhY2UgdG8gaW5kaWNhdGUgdGhhdCBhbiBlcnJvciBzaG91bGQgdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcm1pbmF0ZVJldHJ5IHtcbiAgLyoqXG4gICAqIEEgbWFya2VyIHByb3BlcnR5IHRvIGluZGljYXRlIHRoYXQgYW4gZXJyb3Igc2hvdWxkIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAgICovXG4gIF9fdGVybWluYXRlUmV0cnk6IHRydWU7XG59XG5cbi8qKlxuICogQWRkcyBhbiBlcnJvciBoYW5kbGVyIHRvIGEgUHJvbWlzZSB0aGF0IGNhdGNoZXMgYW55IGVycm9ycyBhbmQgZW1pdHMgYW4gYXN5bmMgZXJyb3IgZXZlbnQuXG4gKlxuICogQHBhcmFtIGFzeW5jRm4gLSBUaGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGFkZCBhbiBlcnJvciBoYW5kbGVyIHRvLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIGNvbXBsZXRlcyBvciBlbWl0cyBhc3luYyBlcnJvciBldmVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcihhc3luY0ZuOiAoKSA9PiBQcm9taXNlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXN5bmNGbigpO1xuICB9IGNhdGNoIChhc3luY0Vycm9yKSB7XG4gICAgZW1pdEFzeW5jRXJyb3JFdmVudChhc3luY0Vycm9yKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gYXJyYXkgYXN5bmNocm9ub3VzbHksIGtlZXBpbmcgb25seSB0aGUgZWxlbWVudHMgdGhhdCBzYXRpc2Z5IHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIGlucHV0IGFycmF5LlxuICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gcHJlZGljYXRlIC0gVGhlIHByZWRpY2F0ZSBmdW5jdGlvbiB0byB0ZXN0IGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgZWxlbWVudHMgdGhhdCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0ZpbHRlcjxUPihhcnI6IFRbXSwgcHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IE1heWJlUHJvbWlzZTxib29sZWFuPik6IFByb21pc2U8VFtdPiB7XG4gIGNvbnN0IHByZWRpY2F0ZVJlc3VsdHMgPSBhd2FpdCBhc3luY01hcChhcnIsIHByZWRpY2F0ZSk7XG4gIHJldHVybiBhcnIuZmlsdGVyKChfLCBpbmRleCkgPT4gcHJlZGljYXRlUmVzdWx0c1tpbmRleF0pO1xufVxuXG4vKipcbiAqIE1hcHMgb3ZlciBhbiBhcnJheSBhc3luY2hyb25vdXNseSwgYXBwbHlpbmcgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGVhY2ggZWxlbWVudCwgYW5kIHRoZW4gZmxhdHRlbnMgdGhlIHJlc3VsdHMgaW50byBhIHNpbmdsZSBhcnJheS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgaW5wdXQgYXJyYXkuXG4gKiBAdHlwZVBhcmFtIFUgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgb3V0cHV0IGFycmF5LlxuICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSB0byBtYXAgb3ZlciBhbmQgZmxhdHRlbi5cbiAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGEgZmxhdHRlbmVkIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRmxhdE1hcDxULCBVPihhcnI6IFRbXSwgY2FsbGJhY2s6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPFVbXT4pOiBQcm9taXNlPFVbXT4ge1xuICByZXR1cm4gKGF3YWl0IGFzeW5jTWFwKGFyciwgY2FsbGJhY2spKS5mbGF0KCk7XG59XG5cbi8qKlxuICogTWFwcyBvdmVyIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBhcHBseWluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZWFjaCBlbGVtZW50LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEB0eXBlUGFyYW0gVSAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIG1hcCBvdmVyLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNNYXA8VCwgVT4oYXJyOiBUW10sIGNhbGxiYWNrOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IE1heWJlUHJvbWlzZTxVPik6IFByb21pc2U8VVtdPiB7XG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhcnIubWFwKGNhbGxiYWNrKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGEgc3luY2hyb25vdXMgb25lIGJ5IGF1dG9tYXRpY2FsbHkgaGFuZGxpbmcgdGhlIFByb21pc2UgcmVqZWN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJncyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBmdW5jdGlvbiBhY2NlcHRzLlxuICogQHBhcmFtIGFzeW5jRnVuYyAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB3cmFwcyB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIGluIGEgc3luY2hyb25vdXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEFzeW5jVG9TeW5jPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KGFzeW5jRnVuYzogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8dW5rbm93bj4pOiAoLi4uYXJnczogQXJncykgPT4gdm9pZCB7XG4gIHJldHVybiAoLi4uYXJnczogQXJncyk6IHZvaWQgPT4ge1xuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IGFzeW5jRnVuYyguLi5hcmdzKSk7XG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBhbiBhc3luY2hyb25vdXMgb25lIGJ5IHdyYXBwaW5nIGl0IGluIGEgUHJvbWlzZS5cbiAqXG4gKiBAdHlwZVBhcmFtIEFyZ3MgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZnVuY3Rpb24gYWNjZXB0cy5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0IC0gVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlLlxuICogQHBhcmFtIHN5bmNGbiAtIFRoZSBzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHdyYXBzIHRoZSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhbiBhc3luY2hyb25vdXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFN5bmNUb0FzeW5jPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10sIFJlc3VsdD4oc3luY0ZuOiAoLi4uYXJnczogQXJncykgPT4gUmVzdWx0KTogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8UmVzdWx0PiB7XG4gIHJldHVybiAoLi4uYXJnczogQXJncyk6IFByb21pc2U8UmVzdWx0PiA9PiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHN5bmNGbiguLi5hcmdzKSk7XG59XG5cbi8qKlxuICogSW52b2tlcyBhIFByb21pc2UgYW5kIHNhZmVseSBoYW5kbGVzIGFueSBlcnJvcnMgYnkgY2F0Y2hpbmcgdGhlbSBhbmQgZW1pdHRpbmcgYW4gYXN5bmMgZXJyb3IgZXZlbnQuXG4gKlxuICogQHBhcmFtIGFzeW5jRm4gLSBUaGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGludm9rZSBzYWZlbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnZva2VBc3luY1NhZmVseShhc3luY0ZuOiAoKSA9PiBQcm9taXNlPHVua25vd24+KTogdm9pZCB7XG4gIHZvaWQgYWRkRXJyb3JIYW5kbGVyKGFzeW5jRm4pO1xufVxuXG4vKipcbiAqIE1hcmtzIGFuIGVycm9yIHRvIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgLSBUaGUgZXJyb3IgdG8gbWFyayB0byB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKiBAcmV0dXJucyBBbiBlcnJvciB0aGF0IHNob3VsZCB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrc0FzVGVybWluYXRlUmV0cnk8VEVycm9yIGV4dGVuZHMgRXJyb3I+KGVycm9yOiBURXJyb3IpOiBUZXJtaW5hdGVSZXRyeSAmIFRFcnJvciB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKGVycm9yLCB7IF9fdGVybWluYXRlUmV0cnk6IHRydWUgfSBhcyBUZXJtaW5hdGVSZXRyeSk7XG59XG5cbi8qKlxuICogUmV0cmllcyB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gdW50aWwgaXQgcmV0dXJucyB0cnVlIG9yIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuXG4gKlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIHJldHJ5LlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gY29uZmlndXJlIHRoZSByZXRyeSBiZWhhdmlvci5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBvciByZWplY3RzIHdoZW4gdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldHJ5V2l0aFRpbWVvdXQoZm46ICgpID0+IE1heWJlUHJvbWlzZTxib29sZWFuPiwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzdGFja1RyYWNlID0gZ2V0U3RhY2tUcmFjZSgpO1xuICBjb25zdCBERUZBVUxUX1JFVFJZX09QVElPTlM6IFJldHJ5T3B0aW9ucyA9IHtcbiAgICByZXRyeURlbGF5SW5NaWxsaXNlY29uZHM6IDEwMCxcbiAgICBzaG91bGRSZXRyeU9uRXJyb3I6IHRydWUsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiA1MDAwXG4gIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBSZXRyeU9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG4gIGF3YWl0IHJ1bldpdGhUaW1lb3V0KG92ZXJyaWRkZW5PcHRpb25zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBhdHRlbXB0ID0gMDtcbiAgICBmb3IgKDsgOykge1xuICAgICAgYXR0ZW1wdCsrO1xuICAgICAgbGV0IGlzU3VjY2VzczogYm9vbGVhbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlzU3VjY2VzcyA9IGF3YWl0IGZuKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIW92ZXJyaWRkZW5PcHRpb25zLnNob3VsZFJldHJ5T25FcnJvciB8fCAoZXJyb3IgYXMgUGFydGlhbDxUZXJtaW5hdGVSZXRyeT4pLl9fdGVybWluYXRlUmV0cnkpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBwcmludEVycm9yKGVycm9yKTtcbiAgICAgICAgaXNTdWNjZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNTdWNjZXNzKSB7XG4gICAgICAgIGlmIChhdHRlbXB0ID4gMSkge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFJldHJ5IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYWZ0ZXIgJHthdHRlbXB0LnRvU3RyaW5nKCl9IGF0dGVtcHRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmRlYnVnKGBSZXRyeSBhdHRlbXB0ICR7YXR0ZW1wdC50b1N0cmluZygpfSBjb21wbGV0ZWQgdW5zdWNjZXNzZnVsbHkuIFRyeWluZyBhZ2FpbiBpbiAke292ZXJyaWRkZW5PcHRpb25zLnJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcy50b1N0cmluZygpfSBtaWxsaXNlY29uZHNgLCB7XG4gICAgICAgIGZuLFxuICAgICAgICBzdGFja1RyYWNlXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHNsZWVwKG92ZXJyaWRkZW5PcHRpb25zLnJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcyk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIGZ1bmN0aW9uIHdpdGggYSB0aW1lb3V0LiBJZiB0aGUgZnVuY3Rpb24gZG9lcyBub3QgY29tcGxldGUgd2l0aGluIHRoZSBzcGVjaWZpZWQgdGltZSwgaXQgaXMgY29uc2lkZXJlZCB0byBoYXZlIHRpbWVkIG91dC5cbiAqXG4gKiBAdHlwZVBhcmFtIFIgLSBUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGZyb20gdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiBvciByZWplY3RzIGlmIGl0IHRpbWVzIG91dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0PFI+KHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyLCBmbjogKCkgPT4gTWF5YmVQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gIGxldCB0aW1lZE91dCA9IGZhbHNlO1xuICBsZXQgcmVzdWx0OiBSID0gbnVsbCBhcyBSO1xuXG4gIGF3YWl0IFByb21pc2UucmFjZShbcnVuKCksIHRpbWVvdXQoKV0pO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICBpZiAodGltZWRPdXQpIHtcbiAgICBjb25zb2xlLmVycm9yKGBUaW1lZCBvdXQgaW4gJHt0aW1lb3V0SW5NaWxsaXNlY29uZHMudG9TdHJpbmcoKX0gbWlsbGlzZWNvbmRzYCwgeyBmbiB9KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWVkIG91dCcpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG5cbiAgYXN5bmMgZnVuY3Rpb24gcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJlc3VsdCA9IGF3YWl0IGZuKCk7XG4gICAgdGltZWRPdXQgPSBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHRpbWVvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc2xlZXAodGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgICB0aW1lZE91dCA9IHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWxheXMgZXhlY3V0aW9uIGZvciBhIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSBUaGUgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGVsYXkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzbGVlcChtaWxsaXNlY29uZHM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlamVjdHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCB0aW1lb3V0IHBlcmlvZC5cbiAqXG4gKiBAcGFyYW0gdGltZW91dEluTWlsbGlzZWNvbmRzIC0gVGhlIHRpbWVvdXQgcGVyaW9kIGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IGFsd2F5cyByZWplY3RzIHdpdGggYSB0aW1lb3V0IGVycm9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGltZW91dCh0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcik6IFByb21pc2U8bmV2ZXI+IHtcbiAgYXdhaXQgc2xlZXAodGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgdGhyb3cgbmV3IEVycm9yKGBUaW1lZCBvdXQgaW4gJHt0aW1lb3V0SW5NaWxsaXNlY29uZHMudG9TdHJpbmcoKX0gbWlsbGlzZWNvbmRzYCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gQXN5bmNJdGVyYWJsZUl0ZXJhdG9yIHRvIGFuIGFycmF5IGJ5IGNvbnN1bWluZyBhbGwgaXRzIGVsZW1lbnRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIHByb2R1Y2VkIGJ5IHRoZSBBc3luY0l0ZXJhYmxlSXRlcmF0b3IuXG4gKiBAcGFyYW0gaXRlciAtIFRoZSBBc3luY0l0ZXJhYmxlSXRlcmF0b3IgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgQXN5bmNJdGVyYWJsZUl0ZXJhdG9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdG9BcnJheTxUPihpdGVyOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8VD4pOiBQcm9taXNlPFRbXT4ge1xuICBjb25zdCBhcnI6IFRbXSA9IFtdO1xuICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgaXRlcikge1xuICAgIGFyci5wdXNoKGl0ZW0pO1xuICB9XG4gIHJldHVybiBhcnI7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLG1CQUlPO0FBNENQLGVBQXNCLGdCQUFnQixTQUFnRDtBQUNwRixNQUFJO0FBQ0YsVUFBTSxRQUFRO0FBQUEsRUFDaEIsU0FBUyxZQUFZO0FBQ25CLDBDQUFvQixVQUFVO0FBQUEsRUFDaEM7QUFDRjtBQVVBLGVBQXNCLFlBQWUsS0FBVSxXQUF5RjtBQUN0SSxRQUFNLG1CQUFtQixNQUFNLFNBQVMsS0FBSyxTQUFTO0FBQ3RELFNBQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxVQUFVLGlCQUFpQixLQUFLLENBQUM7QUFDekQ7QUFXQSxlQUFzQixhQUFtQixLQUFVLFVBQW9GO0FBQ3JJLFVBQVEsTUFBTSxTQUFTLEtBQUssUUFBUSxHQUFHLEtBQUs7QUFDOUM7QUFXQSxlQUFzQixTQUFlLEtBQVUsVUFBa0Y7QUFDL0gsU0FBTyxNQUFNLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDO0FBQzVDO0FBU08sU0FBUyxtQkFBMkMsV0FBeUU7QUFDbEksU0FBTyxJQUFJLFNBQXFCO0FBQzlCLHNCQUFrQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFBQSxFQUM1QztBQUNGO0FBVU8sU0FBUyxtQkFBbUQsUUFBdUU7QUFDeEksU0FBTyxJQUFJLFNBQWdDLFFBQVEsUUFBUSxFQUFFLEtBQUssTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3pGO0FBT08sU0FBUyxrQkFBa0IsU0FBdUM7QUFDdkUsT0FBSyxnQkFBZ0IsT0FBTztBQUM5QjtBQVFPLFNBQVMsc0JBQTRDLE9BQXdDO0FBQ2xHLFNBQU8sT0FBTyxPQUFPLE9BQU8sRUFBRSxrQkFBa0IsS0FBSyxDQUFtQjtBQUMxRTtBQVNBLGVBQXNCLGlCQUFpQixJQUFpQyxlQUFzQyxDQUFDLEdBQWtCO0FBQy9ILFFBQU0saUJBQWEsNEJBQWM7QUFDakMsUUFBTSx3QkFBc0M7QUFBQSxJQUMxQywwQkFBMEI7QUFBQSxJQUMxQixvQkFBb0I7QUFBQSxJQUNwQix1QkFBdUI7QUFBQSxFQUN6QjtBQUNBLFFBQU0sb0JBQWtDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBQ3BGLFFBQU0sZUFBZSxrQkFBa0IsdUJBQXVCLFlBQVk7QUFDeEUsUUFBSSxVQUFVO0FBQ2QsZUFBVTtBQUNSO0FBQ0EsVUFBSTtBQUNKLFVBQUk7QUFDRixvQkFBWSxNQUFNLEdBQUc7QUFBQSxNQUN2QixTQUFTLE9BQU87QUFDZCxZQUFJLENBQUMsa0JBQWtCLHNCQUF1QixNQUFrQyxrQkFBa0I7QUFDaEcsZ0JBQU07QUFBQSxRQUNSO0FBQ0EscUNBQVcsS0FBSztBQUNoQixvQkFBWTtBQUFBLE1BQ2Q7QUFDQSxVQUFJLFdBQVc7QUFDYixZQUFJLFVBQVUsR0FBRztBQUNmLGtCQUFRLE1BQU0sc0NBQXNDLFFBQVEsU0FBUyxDQUFDLFdBQVc7QUFBQSxRQUNuRjtBQUNBO0FBQUEsTUFDRjtBQUVBLGNBQVEsTUFBTSxpQkFBaUIsUUFBUSxTQUFTLENBQUMsOENBQThDLGtCQUFrQix5QkFBeUIsU0FBUyxDQUFDLGlCQUFpQjtBQUFBLFFBQ25LO0FBQUEsUUFDQTtBQUFBLE1BQ0YsQ0FBQztBQUNELFlBQU0sTUFBTSxrQkFBa0Isd0JBQXdCO0FBQUEsSUFDeEQ7QUFBQSxFQUNGLENBQUM7QUFDSDtBQVVBLGVBQXNCLGVBQWtCLHVCQUErQixJQUF1QztBQUM1RyxNQUFJLFdBQVc7QUFDZixNQUFJLFNBQVk7QUFFaEIsUUFBTSxRQUFRLEtBQUssQ0FBQyxJQUFJLEdBQUdBLFNBQVEsQ0FBQyxDQUFDO0FBRXJDLE1BQUksVUFBVTtBQUNaLFlBQVEsTUFBTSxnQkFBZ0Isc0JBQXNCLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUM7QUFDckYsVUFBTSxJQUFJLE1BQU0sV0FBVztBQUFBLEVBQzdCO0FBQ0EsU0FBTztBQUVQLGlCQUFlLE1BQXFCO0FBQ2xDLGFBQVMsTUFBTSxHQUFHO0FBQ2xCLGVBQVc7QUFBQSxFQUNiO0FBRUEsaUJBQWVBLFdBQXlCO0FBQ3RDLFVBQU0sTUFBTSxxQkFBcUI7QUFDakMsZUFBVztBQUFBLEVBQ2I7QUFDRjtBQVFBLGVBQXNCLE1BQU0sY0FBcUM7QUFDL0QsUUFBTSxJQUFJLFFBQVEsQ0FBQyxZQUFZLFdBQVcsU0FBUyxZQUFZLENBQUM7QUFDbEU7QUFRQSxlQUFzQixRQUFRLHVCQUErQztBQUMzRSxRQUFNLE1BQU0scUJBQXFCO0FBQ2pDLFFBQU0sSUFBSSxNQUFNLGdCQUFnQixzQkFBc0IsU0FBUyxDQUFDLGVBQWU7QUFDakY7QUFTQSxlQUFzQixRQUFXLE1BQThDO0FBQzdFLFFBQU0sTUFBVyxDQUFDO0FBQ2xCLG1CQUFpQixRQUFRLE1BQU07QUFDN0IsUUFBSSxLQUFLLElBQUk7QUFBQSxFQUNmO0FBQ0EsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJ0aW1lb3V0Il0KfQo=
@@ -25,49 +25,50 @@ export interface RetryOptions {
25
25
  timeoutInMilliseconds: number;
26
26
  }
27
27
  /**
28
- * Retries the provided function until it returns true or the timeout is reached.
29
- *
30
- * @param fn - The function to retry.
31
- * @param retryOptions - Optional parameters to configure the retry behavior.
32
- * @returns A Promise that resolves when the function returns true or rejects when the timeout is reached.
33
- */
34
- export declare function retryWithTimeout(fn: () => MaybePromise<boolean>, retryOptions?: Partial<RetryOptions>): Promise<void>;
35
- /**
36
- * Delays execution for a specified number of milliseconds.
37
- *
38
- * @param milliseconds - The time to wait in milliseconds.
39
- * @returns A Promise that resolves after the specified delay.
28
+ * A marker interface to indicate that an error should terminate retry logic.
40
29
  */
41
- export declare function sleep(milliseconds: number): Promise<void>;
30
+ export interface TerminateRetry {
31
+ /**
32
+ * A marker property to indicate that an error should terminate retry logic.
33
+ */
34
+ __terminateRetry: true;
35
+ }
42
36
  /**
43
- * Executes a function with a timeout. If the function does not complete within the specified time, it is considered to have timed out.
37
+ * Adds an error handler to a Promise that catches any errors and emits an async error event.
44
38
  *
45
- * @typeParam R - The type of the result from the asynchronous function.
46
- * @param timeoutInMilliseconds - The maximum time to wait in milliseconds.
47
- * @param fn - The function to execute.
48
- * @returns A Promise that resolves with the result of the asynchronous function or rejects if it times out.
39
+ * @param asyncFn - The asynchronous function to add an error handler to.
40
+ * @returns A Promise that resolves when the asynchronous function completes or emits async error event.
49
41
  */
50
- export declare function runWithTimeout<R>(timeoutInMilliseconds: number, fn: () => MaybePromise<R>): Promise<R>;
42
+ export declare function addErrorHandler(asyncFn: () => Promise<unknown>): Promise<void>;
51
43
  /**
52
- * Returns a Promise that rejects after the specified timeout period.
44
+ * Filters an array asynchronously, keeping only the elements that satisfy the provided predicate function.
53
45
  *
54
- * @param timeoutInMilliseconds - The timeout period in milliseconds.
55
- * @returns A Promise that always rejects with a timeout error.
46
+ * @typeParam T - The type of elements in the input array.
47
+ * @param arr - The array to filter.
48
+ * @param predicate - The predicate function to test each element.
49
+ * @returns A Promise that resolves with an array of elements that satisfy the predicate function.
56
50
  */
57
- export declare function timeout(timeoutInMilliseconds: number): Promise<never>;
51
+ export declare function asyncFilter<T>(arr: T[], predicate: (value: T, index: number, array: T[]) => MaybePromise<boolean>): Promise<T[]>;
58
52
  /**
59
- * Invokes a Promise and safely handles any errors by catching them and emitting an async error event.
53
+ * Maps over an array asynchronously, applying the provided callback function to each element, and then flattens the results into a single array.
60
54
  *
61
- * @param asyncFn - The asynchronous function to invoke safely.
55
+ * @typeParam T - The type of elements in the input array.
56
+ * @typeParam U - The type of elements in the output array.
57
+ * @param arr - The array to map over and flatten.
58
+ * @param callback - The callback function to apply to each element.
59
+ * @returns A Promise that resolves with a flattened array of the results of the callback function.
62
60
  */
63
- export declare function invokeAsyncSafely(asyncFn: () => Promise<unknown>): void;
61
+ export declare function asyncFlatMap<T, U>(arr: T[], callback: (value: T, index: number, array: T[]) => MaybePromise<U[]>): Promise<U[]>;
64
62
  /**
65
- * Adds an error handler to a Promise that catches any errors and emits an async error event.
63
+ * Maps over an array asynchronously, applying the provided callback function to each element.
66
64
  *
67
- * @param asyncFn - The asynchronous function to add an error handler to.
68
- * @returns A Promise that resolves when the asynchronous function completes or emits async error event.
65
+ * @typeParam T - The type of elements in the input array.
66
+ * @typeParam U - The type of elements in the output array.
67
+ * @param arr - The array to map over.
68
+ * @param callback - The callback function to apply to each element.
69
+ * @returns A Promise that resolves with an array of the results of the callback function.
69
70
  */
70
- export declare function addErrorHandler(asyncFn: () => Promise<unknown>): Promise<void>;
71
+ export declare function asyncMap<T, U>(arr: T[], callback: (value: T, index: number, array: T[]) => MaybePromise<U>): Promise<U[]>;
71
72
  /**
72
73
  * Converts an asynchronous function to a synchronous one by automatically handling the Promise rejection.
73
74
  *
@@ -86,55 +87,54 @@ export declare function convertAsyncToSync<Args extends unknown[]>(asyncFunc: (.
86
87
  */
87
88
  export declare function convertSyncToAsync<Args extends unknown[], Result>(syncFn: (...args: Args) => Result): (...args: Args) => Promise<Result>;
88
89
  /**
89
- * Maps over an array asynchronously, applying the provided callback function to each element.
90
+ * Invokes a Promise and safely handles any errors by catching them and emitting an async error event.
90
91
  *
91
- * @typeParam T - The type of elements in the input array.
92
- * @typeParam U - The type of elements in the output array.
93
- * @param arr - The array to map over.
94
- * @param callback - The callback function to apply to each element.
95
- * @returns A Promise that resolves with an array of the results of the callback function.
92
+ * @param asyncFn - The asynchronous function to invoke safely.
96
93
  */
97
- export declare function asyncMap<T, U>(arr: T[], callback: (value: T, index: number, array: T[]) => MaybePromise<U>): Promise<U[]>;
94
+ export declare function invokeAsyncSafely(asyncFn: () => Promise<unknown>): void;
98
95
  /**
99
- * Filters an array asynchronously, keeping only the elements that satisfy the provided predicate function.
96
+ * Marks an error to terminate retry logic.
100
97
  *
101
- * @typeParam T - The type of elements in the input array.
102
- * @param arr - The array to filter.
103
- * @param predicate - The predicate function to test each element.
104
- * @returns A Promise that resolves with an array of elements that satisfy the predicate function.
98
+ * @param error - The error to mark to terminate retry logic.
99
+ * @returns An error that should terminate retry logic.
105
100
  */
106
- export declare function asyncFilter<T>(arr: T[], predicate: (value: T, index: number, array: T[]) => MaybePromise<boolean>): Promise<T[]>;
101
+ export declare function marksAsTerminateRetry<TError extends Error>(error: TError): TerminateRetry & TError;
107
102
  /**
108
- * Maps over an array asynchronously, applying the provided callback function to each element, and then flattens the results into a single array.
103
+ * Retries the provided function until it returns true or the timeout is reached.
109
104
  *
110
- * @typeParam T - The type of elements in the input array.
111
- * @typeParam U - The type of elements in the output array.
112
- * @param arr - The array to map over and flatten.
113
- * @param callback - The callback function to apply to each element.
114
- * @returns A Promise that resolves with a flattened array of the results of the callback function.
105
+ * @param fn - The function to retry.
106
+ * @param retryOptions - Optional parameters to configure the retry behavior.
107
+ * @returns A Promise that resolves when the function returns true or rejects when the timeout is reached.
115
108
  */
116
- export declare function asyncFlatMap<T, U>(arr: T[], callback: (value: T, index: number, array: T[]) => MaybePromise<U[]>): Promise<U[]>;
109
+ export declare function retryWithTimeout(fn: () => MaybePromise<boolean>, retryOptions?: Partial<RetryOptions>): Promise<void>;
117
110
  /**
118
- * Converts an AsyncIterableIterator to an array by consuming all its elements.
111
+ * Executes a function with a timeout. If the function does not complete within the specified time, it is considered to have timed out.
119
112
  *
120
- * @typeParam T - The type of elements produced by the AsyncIterableIterator.
121
- * @param iter - The AsyncIterableIterator to convert.
122
- * @returns A Promise that resolves with an array of all the elements in the AsyncIterableIterator.
113
+ * @typeParam R - The type of the result from the asynchronous function.
114
+ * @param timeoutInMilliseconds - The maximum time to wait in milliseconds.
115
+ * @param fn - The function to execute.
116
+ * @returns A Promise that resolves with the result of the asynchronous function or rejects if it times out.
123
117
  */
124
- export declare function toArray<T>(iter: AsyncIterableIterator<T>): Promise<T[]>;
118
+ export declare function runWithTimeout<R>(timeoutInMilliseconds: number, fn: () => MaybePromise<R>): Promise<R>;
125
119
  /**
126
- * A marker interface to indicate that an error should terminate retry logic.
120
+ * Delays execution for a specified number of milliseconds.
121
+ *
122
+ * @param milliseconds - The time to wait in milliseconds.
123
+ * @returns A Promise that resolves after the specified delay.
127
124
  */
128
- export interface TerminateRetry {
129
- /**
130
- * A marker property to indicate that an error should terminate retry logic.
131
- */
132
- __terminateRetry: true;
133
- }
125
+ export declare function sleep(milliseconds: number): Promise<void>;
134
126
  /**
135
- * Marks an error to terminate retry logic.
127
+ * Returns a Promise that rejects after the specified timeout period.
136
128
  *
137
- * @param error - The error to mark to terminate retry logic.
138
- * @returns An error that should terminate retry logic.
129
+ * @param timeoutInMilliseconds - The timeout period in milliseconds.
130
+ * @returns A Promise that always rejects with a timeout error.
139
131
  */
140
- export declare function marksAsTerminateRetry<TError extends Error>(error: TError): TerminateRetry & TError;
132
+ export declare function timeout(timeoutInMilliseconds: number): Promise<never>;
133
+ /**
134
+ * Converts an AsyncIterableIterator to an array by consuming all its elements.
135
+ *
136
+ * @typeParam T - The type of elements produced by the AsyncIterableIterator.
137
+ * @param iter - The AsyncIterableIterator to convert.
138
+ * @returns A Promise that resolves with an array of all the elements in the AsyncIterableIterator.
139
+ */
140
+ export declare function toArray<T>(iter: AsyncIterableIterator<T>): Promise<T[]>;
package/dist/lib/Blob.cjs CHANGED
@@ -32,6 +32,16 @@ __export(Blob_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(Blob_exports);
34
34
  var import_Error = require('./Error.cjs');
35
+ function base64ToArrayBuffer(code) {
36
+ const parts = code.split(";base64,");
37
+ const raw = window.atob(parts[1] ?? (0, import_Error.throwExpression)(new Error("Invalid base64 string")));
38
+ const rawLength = raw.length;
39
+ const uInt8Array = new Uint8Array(rawLength);
40
+ for (let i = 0; i < rawLength; ++i) {
41
+ uInt8Array[i] = raw.charCodeAt(i);
42
+ }
43
+ return uInt8Array.buffer;
44
+ }
35
45
  async function blobToArrayBuffer(blob) {
36
46
  return await new Promise((resolve) => {
37
47
  const reader = new FileReader();
@@ -72,16 +82,6 @@ async function blobToJpegArrayBuffer(blob, jpegQuality) {
72
82
  reader.readAsDataURL(blob);
73
83
  });
74
84
  }
75
- function base64ToArrayBuffer(code) {
76
- const parts = code.split(";base64,");
77
- const raw = window.atob(parts[1] ?? (0, import_Error.throwExpression)(new Error("Invalid base64 string")));
78
- const rawLength = raw.length;
79
- const uInt8Array = new Uint8Array(rawLength);
80
- for (let i = 0; i < rawLength; ++i) {
81
- uInt8Array[i] = raw.charCodeAt(i);
82
- }
83
- return uInt8Array.buffer;
84
- }
85
85
  function isImageFile(file) {
86
86
  return file.type.startsWith("image/");
87
87
  }
@@ -92,4 +92,4 @@ function isImageFile(file) {
92
92
  blobToJpegArrayBuffer,
93
93
  isImageFile
94
94
  });
95
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Jsb2IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEFzeW5jXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgQmxvYiBvYmplY3RzLlxuICovXG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgQmxvYiBvYmplY3QgdG8gYW4gQXJyYXlCdWZmZXIuXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIEFycmF5QnVmZmVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvQXJyYXlCdWZmZXIoYmxvYjogQmxvYik6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIub25sb2FkZW5kID0gKCk6IHZvaWQgPT4ge1xuICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBCbG9iIG9iamVjdCB0byBhIEpQRUcgQXJyYXlCdWZmZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHF1YWxpdHkuXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEBwYXJhbSBqcGVnUXVhbGl0eSAtIFRoZSBxdWFsaXR5IG9mIHRoZSBKUEVHIGltYWdlICgwIHRvIDEpLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gQXJyYXlCdWZmZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBibG9iVG9KcGVnQXJyYXlCdWZmZXIoYmxvYjogQmxvYiwganBlZ1F1YWxpdHk6IG51bWJlcik6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIub25sb2FkZW5kID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgIGltYWdlLm9ubG9hZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZ2V0IDJEIGNvbnRleHQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW1hZ2VXaWR0aCA9IGltYWdlLndpZHRoO1xuICAgICAgICBjb25zdCBpbWFnZUhlaWdodCA9IGltYWdlLmhlaWdodDtcbiAgICAgICAgbGV0IGRhdGEgPSAnJztcblxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZVdpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7XG5cbiAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG4gICAgICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQpO1xuICAgICAgICBjb250ZXh0LnNhdmUoKTtcblxuICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShpbWFnZVdpZHRoIC8gMiwgaW1hZ2VIZWlnaHQgLyAyKTtcbiAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0LCAtaW1hZ2VXaWR0aCAvIDIsIC1pbWFnZUhlaWdodCAvIDIsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTtcbiAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7XG5cbiAgICAgICAgZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBqcGVnUXVhbGl0eSk7XG5cbiAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBiYXNlNjRUb0FycmF5QnVmZmVyKGRhdGEpO1xuICAgICAgICByZXNvbHZlKGFycmF5QnVmZmVyKTtcbiAgICAgIH07XG5cbiAgICAgIGltYWdlLnNyYyA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgIH07XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIHRvIGFuIEFycmF5QnVmZmVyLlxuICpcbiAqIEBwYXJhbSBjb2RlIC0gVGhlIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIEFycmF5QnVmZmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9BcnJheUJ1ZmZlcihjb2RlOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IHBhcnRzID0gY29kZS5zcGxpdCgnO2Jhc2U2NCwnKTtcbiAgY29uc3QgcmF3ID0gd2luZG93LmF0b2IocGFydHNbMV0gPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignSW52YWxpZCBiYXNlNjQgc3RyaW5nJykpKTtcbiAgY29uc3QgcmF3TGVuZ3RoID0gcmF3Lmxlbmd0aDtcblxuICBjb25zdCB1SW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocmF3TGVuZ3RoKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd0xlbmd0aDsgKytpKSB7XG4gICAgdUludDhBcnJheVtpXSA9IHJhdy5jaGFyQ29kZUF0KGkpO1xuICB9XG4gIHJldHVybiB1SW50OEFycmF5LmJ1ZmZlcjtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBmaWxlIGlzIGFuIGltYWdlLlxuICpcbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBmaWxlIGlzIGFuIGltYWdlLCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLG1CQUFnQztBQVFoQyxlQUFzQixrQkFBa0IsTUFBa0M7QUFDeEUsU0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLFlBQVk7QUFDcEMsVUFBTSxTQUFTLElBQUksV0FBVztBQUM5QixXQUFPLFlBQVksTUFBWTtBQUM3QixjQUFRLE9BQU8sTUFBcUI7QUFBQSxJQUN0QztBQUNBLFdBQU8sa0JBQWtCLElBQUk7QUFBQSxFQUMvQixDQUFDO0FBQ0g7QUFTQSxlQUFzQixzQkFBc0IsTUFBWSxhQUEyQztBQUNqRyxTQUFPLElBQUksUUFBUSxDQUFDLFlBQVk7QUFDOUIsVUFBTSxTQUFTLElBQUksV0FBVztBQUM5QixXQUFPLFlBQVksTUFBWTtBQUM3QixZQUFNLFFBQVEsSUFBSSxNQUFNO0FBQ3hCLFlBQU0sU0FBUyxNQUFZO0FBQ3pCLGNBQU0sU0FBUyxTQUFTLGNBQWMsUUFBUTtBQUM5QyxjQUFNLFVBQVUsT0FBTyxXQUFXLElBQUk7QUFDdEMsWUFBSSxDQUFDLFNBQVM7QUFDWixnQkFBTSxJQUFJLE1BQU0sMkJBQTJCO0FBQUEsUUFDN0M7QUFDQSxjQUFNLGFBQWEsTUFBTTtBQUN6QixjQUFNLGNBQWMsTUFBTTtBQUMxQixZQUFJLE9BQU87QUFFWCxlQUFPLFFBQVE7QUFDZixlQUFPLFNBQVM7QUFFaEIsZ0JBQVEsWUFBWTtBQUNwQixnQkFBUSxTQUFTLEdBQUcsR0FBRyxZQUFZLFdBQVc7QUFDOUMsZ0JBQVEsS0FBSztBQUViLGdCQUFRLFVBQVUsYUFBYSxHQUFHLGNBQWMsQ0FBQztBQUNqRCxnQkFBUSxVQUFVLE9BQU8sR0FBRyxHQUFHLFlBQVksYUFBYSxDQUFDLGFBQWEsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLFdBQVc7QUFDbEgsZ0JBQVEsUUFBUTtBQUVoQixlQUFPLE9BQU8sVUFBVSxjQUFjLFdBQVc7QUFFakQsY0FBTSxjQUFjLG9CQUFvQixJQUFJO0FBQzVDLGdCQUFRLFdBQVc7QUFBQSxNQUNyQjtBQUVBLFlBQU0sTUFBTSxPQUFPO0FBQUEsSUFDckI7QUFDQSxXQUFPLGNBQWMsSUFBSTtBQUFBLEVBQzNCLENBQUM7QUFDSDtBQVFPLFNBQVMsb0JBQW9CLE1BQTJCO0FBQzdELFFBQU0sUUFBUSxLQUFLLE1BQU0sVUFBVTtBQUNuQyxRQUFNLE1BQU0sT0FBTyxLQUFLLE1BQU0sQ0FBQyxTQUFLLDhCQUFnQixJQUFJLE1BQU0sdUJBQXVCLENBQUMsQ0FBQztBQUN2RixRQUFNLFlBQVksSUFBSTtBQUV0QixRQUFNLGFBQWEsSUFBSSxXQUFXLFNBQVM7QUFFM0MsV0FBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsR0FBRztBQUNsQyxlQUFXLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztBQUFBLEVBQ2xDO0FBQ0EsU0FBTyxXQUFXO0FBQ3BCO0FBUU8sU0FBUyxZQUFZLE1BQXFCO0FBQy9DLFNBQU8sS0FBSyxLQUFLLFdBQVcsUUFBUTtBQUN0QzsiLAogICJuYW1lcyI6IFtdCn0K
95
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Jsb2IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEFzeW5jXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgQmxvYiBvYmplY3RzLlxuICovXG5cbmltcG9ydCB7IHRocm93RXhwcmVzc2lvbiB9IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIHRvIGFuIEFycmF5QnVmZmVyLlxuICpcbiAqIEBwYXJhbSBjb2RlIC0gVGhlIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIEFycmF5QnVmZmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9BcnJheUJ1ZmZlcihjb2RlOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IHBhcnRzID0gY29kZS5zcGxpdCgnO2Jhc2U2NCwnKTtcbiAgY29uc3QgcmF3ID0gd2luZG93LmF0b2IocGFydHNbMV0gPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignSW52YWxpZCBiYXNlNjQgc3RyaW5nJykpKTtcbiAgY29uc3QgcmF3TGVuZ3RoID0gcmF3Lmxlbmd0aDtcblxuICBjb25zdCB1SW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocmF3TGVuZ3RoKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd0xlbmd0aDsgKytpKSB7XG4gICAgdUludDhBcnJheVtpXSA9IHJhdy5jaGFyQ29kZUF0KGkpO1xuICB9XG4gIHJldHVybiB1SW50OEFycmF5LmJ1ZmZlcjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIEJsb2Igb2JqZWN0IHRvIGFuIEFycmF5QnVmZmVyLlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBBcnJheUJ1ZmZlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBBcnJheUJ1ZmZlcik7XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgQmxvYiBvYmplY3QgdG8gYSBKUEVHIEFycmF5QnVmZmVyIHdpdGggdGhlIHNwZWNpZmllZCBxdWFsaXR5LlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0ganBlZ1F1YWxpdHkgLSBUaGUgcXVhbGl0eSBvZiB0aGUgSlBFRyBpbWFnZSAoMCB0byAxKS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIEFycmF5QnVmZmVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvSnBlZ0FycmF5QnVmZmVyKGJsb2I6IEJsb2IsIGpwZWdRdWFsaXR5OiBudW1iZXIpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWFnZS5vbmxvYWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGdldCAyRCBjb250ZXh0LicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBpbWFnZS53aWR0aDtcbiAgICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG4gICAgICAgIGxldCBkYXRhID0gJyc7XG5cbiAgICAgICAgY2FudmFzLndpZHRoID0gaW1hZ2VXaWR0aDtcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlSGVpZ2h0O1xuXG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJyNmZmYnO1xuICAgICAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTtcbiAgICAgICAgY29udGV4dC5zYXZlKCk7XG5cbiAgICAgICAgY29udGV4dC50cmFuc2xhdGUoaW1hZ2VXaWR0aCAvIDIsIGltYWdlSGVpZ2h0IC8gMik7XG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCwgLWltYWdlV2lkdGggLyAyLCAtaW1hZ2VIZWlnaHQgLyAyLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7XG4gICAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xuXG4gICAgICAgIGRhdGEgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywganBlZ1F1YWxpdHkpO1xuXG4gICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYmFzZTY0VG9BcnJheUJ1ZmZlcihkYXRhKTtcbiAgICAgICAgcmVzb2x2ZShhcnJheUJ1ZmZlcik7XG4gICAgICB9O1xuXG4gICAgICBpbWFnZS5zcmMgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBmaWxlIGlzIGFuIGltYWdlLlxuICpcbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBmaWxlIGlzIGFuIGltYWdlLCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLG1CQUFnQztBQVF6QixTQUFTLG9CQUFvQixNQUEyQjtBQUM3RCxRQUFNLFFBQVEsS0FBSyxNQUFNLFVBQVU7QUFDbkMsUUFBTSxNQUFNLE9BQU8sS0FBSyxNQUFNLENBQUMsU0FBSyw4QkFBZ0IsSUFBSSxNQUFNLHVCQUF1QixDQUFDLENBQUM7QUFDdkYsUUFBTSxZQUFZLElBQUk7QUFFdEIsUUFBTSxhQUFhLElBQUksV0FBVyxTQUFTO0FBRTNDLFdBQVMsSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFLEdBQUc7QUFDbEMsZUFBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUM7QUFBQSxFQUNsQztBQUNBLFNBQU8sV0FBVztBQUNwQjtBQVFBLGVBQXNCLGtCQUFrQixNQUFrQztBQUN4RSxTQUFPLE1BQU0sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUNwQyxVQUFNLFNBQVMsSUFBSSxXQUFXO0FBQzlCLFdBQU8sWUFBWSxNQUFZO0FBQzdCLGNBQVEsT0FBTyxNQUFxQjtBQUFBLElBQ3RDO0FBQ0EsV0FBTyxrQkFBa0IsSUFBSTtBQUFBLEVBQy9CLENBQUM7QUFDSDtBQVNBLGVBQXNCLHNCQUFzQixNQUFZLGFBQTJDO0FBQ2pHLFNBQU8sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUM5QixVQUFNLFNBQVMsSUFBSSxXQUFXO0FBQzlCLFdBQU8sWUFBWSxNQUFZO0FBQzdCLFlBQU0sUUFBUSxJQUFJLE1BQU07QUFDeEIsWUFBTSxTQUFTLE1BQVk7QUFDekIsY0FBTSxTQUFTLFNBQVMsY0FBYyxRQUFRO0FBQzlDLGNBQU0sVUFBVSxPQUFPLFdBQVcsSUFBSTtBQUN0QyxZQUFJLENBQUMsU0FBUztBQUNaLGdCQUFNLElBQUksTUFBTSwyQkFBMkI7QUFBQSxRQUM3QztBQUNBLGNBQU0sYUFBYSxNQUFNO0FBQ3pCLGNBQU0sY0FBYyxNQUFNO0FBQzFCLFlBQUksT0FBTztBQUVYLGVBQU8sUUFBUTtBQUNmLGVBQU8sU0FBUztBQUVoQixnQkFBUSxZQUFZO0FBQ3BCLGdCQUFRLFNBQVMsR0FBRyxHQUFHLFlBQVksV0FBVztBQUM5QyxnQkFBUSxLQUFLO0FBRWIsZ0JBQVEsVUFBVSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQ2pELGdCQUFRLFVBQVUsT0FBTyxHQUFHLEdBQUcsWUFBWSxhQUFhLENBQUMsYUFBYSxHQUFHLENBQUMsY0FBYyxHQUFHLFlBQVksV0FBVztBQUNsSCxnQkFBUSxRQUFRO0FBRWhCLGVBQU8sT0FBTyxVQUFVLGNBQWMsV0FBVztBQUVqRCxjQUFNLGNBQWMsb0JBQW9CLElBQUk7QUFDNUMsZ0JBQVEsV0FBVztBQUFBLE1BQ3JCO0FBRUEsWUFBTSxNQUFNLE9BQU87QUFBQSxJQUNyQjtBQUNBLFdBQU8sY0FBYyxJQUFJO0FBQUEsRUFDM0IsQ0FBQztBQUNIO0FBUU8sU0FBUyxZQUFZLE1BQXFCO0FBQy9DLFNBQU8sS0FBSyxLQUFLLFdBQVcsUUFBUTtBQUN0QzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -2,6 +2,13 @@
2
2
  * @packageDocumentation Async
3
3
  * Contains utility functions for Blob objects.
4
4
  */
5
+ /**
6
+ * Converts a base64 encoded string to an ArrayBuffer.
7
+ *
8
+ * @param code - The base64 encoded string.
9
+ * @returns The decoded ArrayBuffer.
10
+ */
11
+ export declare function base64ToArrayBuffer(code: string): ArrayBuffer;
5
12
  /**
6
13
  * Converts a Blob object to an ArrayBuffer.
7
14
  *
@@ -17,13 +24,6 @@ export declare function blobToArrayBuffer(blob: Blob): Promise<ArrayBuffer>;
17
24
  * @returns A promise that resolves to an ArrayBuffer.
18
25
  */
19
26
  export declare function blobToJpegArrayBuffer(blob: Blob, jpegQuality: number): Promise<ArrayBuffer>;
20
- /**
21
- * Converts a base64 encoded string to an ArrayBuffer.
22
- *
23
- * @param code - The base64 encoded string.
24
- * @returns The decoded ArrayBuffer.
25
- */
26
- export declare function base64ToArrayBuffer(code: string): ArrayBuffer;
27
27
  /**
28
28
  * Checks if a given file is an image.
29
29
  *
@@ -37,15 +37,16 @@ var import_eventemitter3 = require('eventemitter3');
37
37
  const ASYNC_ERROR_EVENT = "asyncError";
38
38
  const asyncErrorEventEmitter = new import_eventemitter3.EventEmitter();
39
39
  asyncErrorEventEmitter.on(ASYNC_ERROR_EVENT, handleAsyncError);
40
- function handleAsyncError(asyncError) {
41
- printError(new Error("An unhandled error occurred executing async operation", { cause: asyncError }));
42
- }
43
40
  function emitAsyncErrorEvent(asyncError) {
44
41
  asyncErrorEventEmitter.emit(ASYNC_ERROR_EVENT, asyncError);
45
42
  }
46
- function registerAsyncErrorEventHandler(handler) {
47
- asyncErrorEventEmitter.on(ASYNC_ERROR_EVENT, handler);
48
- return () => asyncErrorEventEmitter.off(ASYNC_ERROR_EVENT, handler);
43
+ function errorToString(error) {
44
+ return parseErrorEntries(error).map((entry) => " ".repeat(entry.level) + entry.message).join("\n");
45
+ }
46
+ function getStackTrace() {
47
+ const stack = new Error().stack ?? "";
48
+ const lines = stack.split("\n");
49
+ return lines.slice(2).join("\n");
49
50
  }
50
51
  function printError(error) {
51
52
  const entries = parseErrorEntries(error);
@@ -57,8 +58,15 @@ function printError(error) {
57
58
  }
58
59
  }
59
60
  }
60
- function errorToString(error) {
61
- return parseErrorEntries(error).map((entry) => " ".repeat(entry.level) + entry.message).join("\n");
61
+ function registerAsyncErrorEventHandler(handler) {
62
+ asyncErrorEventEmitter.on(ASYNC_ERROR_EVENT, handler);
63
+ return () => asyncErrorEventEmitter.off(ASYNC_ERROR_EVENT, handler);
64
+ }
65
+ function throwExpression(error) {
66
+ throw error;
67
+ }
68
+ function handleAsyncError(asyncError) {
69
+ printError(new Error("An unhandled error occurred executing async operation", { cause: asyncError }));
62
70
  }
63
71
  function parseErrorEntries(error, level = 0, entries = []) {
64
72
  if (error === void 0) {
@@ -89,14 +97,6 @@ ${restStack}` });
89
97
  }
90
98
  return entries;
91
99
  }
92
- function throwExpression(error) {
93
- throw error;
94
- }
95
- function getStackTrace() {
96
- const stack = new Error().stack ?? "";
97
- const lines = stack.split("\n");
98
- return lines.slice(2).join("\n");
99
- }
100
100
  // Annotate the CommonJS export names for ESM import in node:
101
101
  0 && (module.exports = {
102
102
  emitAsyncErrorEvent,
@@ -106,4 +106,4 @@ function getStackTrace() {
106
106
  registerAsyncErrorEventHandler,
107
107
  throwExpression
108
108
  });
109
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Vycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBFcnJvclxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVycm9yIGhhbmRsaW5nLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuXG5jb25zdCBBU1lOQ19FUlJPUl9FVkVOVCA9ICdhc3luY0Vycm9yJztcblxuY29uc3QgYXN5bmNFcnJvckV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbmFzeW5jRXJyb3JFdmVudEVtaXR0ZXIub24oQVNZTkNfRVJST1JfRVZFTlQsIGhhbmRsZUFzeW5jRXJyb3IpO1xuXG4vKipcbiAqIEhhbmRsZXMgYXN5bmNocm9ub3VzIGVycm9ycyBieSBwcmludGluZyB0aGVtLlxuICpcbiAqIEBwYXJhbSBhc3luY0Vycm9yIC0gVGhlIGFzeW5jaHJvbm91cyBlcnJvciB0byBoYW5kbGUuXG4gKi9cbmZ1bmN0aW9uIGhhbmRsZUFzeW5jRXJyb3IoYXN5bmNFcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBwcmludEVycm9yKG5ldyBFcnJvcignQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkIGV4ZWN1dGluZyBhc3luYyBvcGVyYXRpb24nLCB7IGNhdXNlOiBhc3luY0Vycm9yIH0pKTtcbn1cblxuLyoqXG4gKiBFbWl0cyBhbiBhc3luY2hyb25vdXMgZXJyb3IgZXZlbnQuXG4gKlxuICogQHBhcmFtIGFzeW5jRXJyb3IgLSBUaGUgZXJyb3IgdG8gZW1pdCBhcyBhbiBhc3luY2hyb25vdXMgZXJyb3IgZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWl0QXN5bmNFcnJvckV2ZW50KGFzeW5jRXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgYXN5bmNFcnJvckV2ZW50RW1pdHRlci5lbWl0KEFTWU5DX0VSUk9SX0VWRU5ULCBhc3luY0Vycm9yKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYW4gZXZlbnQgaGFuZGxlciBmb3IgYXN5bmNocm9ub3VzIGVycm9ycy5cbiAqXG4gKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGFuIGFzeW5jaHJvbm91cyBlcnJvciBldmVudCBvY2N1cnMuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRvIHVucmVnaXN0ZXIgdGhlIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIoaGFuZGxlcjogKGFzeW5jRXJyb3I6IHVua25vd24pID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgYXN5bmNFcnJvckV2ZW50RW1pdHRlci5vbihBU1lOQ19FUlJPUl9FVkVOVCwgaGFuZGxlcik7XG4gIHJldHVybiAoKSA9PiBhc3luY0Vycm9yRXZlbnRFbWl0dGVyLm9mZihBU1lOQ19FUlJPUl9FVkVOVCwgaGFuZGxlcik7XG59XG5cbmludGVyZmFjZSBFcnJvckVudHJ5IHtcbiAgbGV2ZWw6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzaG91bGRDbGVhckFuc2lTZXF1ZW5jZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJpbnRzIGFuIGVycm9yIHRvIHRoZSBjb25zb2xlLCBpbmNsdWRpbmcgbmVzdGVkIGNhdXNlcyBhbmQgb3B0aW9uYWwgQU5TSSBzZXF1ZW5jZSBjbGVhcmluZy5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgLSBUaGUgZXJyb3IgdG8gcHJpbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludEVycm9yKGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gIGNvbnN0IGVudHJpZXMgPSBwYXJzZUVycm9yRW50cmllcyhlcnJvcik7XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgaWYgKGVudHJ5LnNob3VsZENsZWFyQW5zaVNlcXVlbmNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBcXHgxYlswbSR7ZW50cnkubWVzc2FnZX1cXHgxYlswbWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVudHJ5Lm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGVycm9yIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBpbmNsdWRpbmcgbmVzdGVkIGNhdXNlcyB3aXRoIGluZGVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBjb252ZXJ0IHRvIGEgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclRvU3RyaW5nKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcnNlRXJyb3JFbnRyaWVzKGVycm9yKS5tYXAoKGVudHJ5KSA9PiAnICAnLnJlcGVhdChlbnRyeS5sZXZlbCkgKyBlbnRyeS5tZXNzYWdlKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYW4gZXJyb3IgaW50byBhbiBhcnJheSBvZiBFcnJvckVudHJ5IG9iamVjdHMsIGluY2x1ZGluZyBuZXN0ZWQgY2F1c2VzLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBwYXJzZS5cbiAqIEBwYXJhbSBsZXZlbCAtIFRoZSBjdXJyZW50IGluZGVudGF0aW9uIGxldmVsIGZvciBuZXN0ZWQgY2F1c2VzLlxuICogQHBhcmFtIGVudHJpZXMgLSBUaGUgYXJyYXkgb2YgRXJyb3JFbnRyeSBvYmplY3RzIHRvIHBvcHVsYXRlLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgRXJyb3JFbnRyeSBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUgZXJyb3IgYW5kIGl0cyBjYXVzZXMuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRXJyb3JFbnRyaWVzKGVycm9yOiB1bmtub3duLCBsZXZlbCA9IDAsIGVudHJpZXM6IEVycm9yRW50cnlbXSA9IFtdKTogRXJyb3JFbnRyeVtdIHtcbiAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxuXG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgbGV0IHN0ciA9ICcnO1xuXG4gICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICBzdHIgPSAnKG51bGwpJztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN0ciA9IGVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHIgPSBKU09OLnN0cmluZ2lmeShlcnJvcik7XG4gICAgfVxuXG4gICAgZW50cmllcy5wdXNoKHsgbGV2ZWwsIG1lc3NhZ2U6IHN0ciB9KTtcbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxuXG4gIGNvbnN0IHRpdGxlID0gYCR7ZXJyb3IubmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gO1xuICBlbnRyaWVzLnB1c2goeyBsZXZlbCwgbWVzc2FnZTogdGl0bGUsIHNob3VsZENsZWFyQW5zaVNlcXVlbmNlOiB0cnVlIH0pO1xuXG4gIGlmIChlcnJvci5zdGFjaykge1xuICAgIGNvbnN0IHJlc3RTdGFjayA9IGVycm9yLnN0YWNrLnN0YXJ0c1dpdGgodGl0bGUpID8gZXJyb3Iuc3RhY2suc2xpY2UodGl0bGUubGVuZ3RoICsgMSkgOiBlcnJvci5zdGFjaztcbiAgICBlbnRyaWVzLnB1c2goeyBsZXZlbCwgbWVzc2FnZTogYEVycm9yIHN0YWNrOlxcbiR7cmVzdFN0YWNrfWAgfSk7XG4gIH1cblxuICBpZiAoZXJyb3IuY2F1c2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGVudHJpZXMucHVzaCh7IGxldmVsLCBtZXNzYWdlOiAnQ2F1c2VkIGJ5OicgfSk7XG4gICAgcGFyc2VFcnJvckVudHJpZXMoZXJyb3IuY2F1c2UsIGxldmVsICsgMSwgZW50cmllcyk7XG4gIH1cblxuICByZXR1cm4gZW50cmllcztcbn1cblxuLyoqXG4gKiBUaHJvd3MgYW4gZXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIHRocm93LlxuICogQHJldHVybnMgQSBuZXZlci1yZXR1cm5pbmcgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0V4cHJlc3Npb24oZXJyb3I6IHVua25vd24pOiBuZXZlciB7XG4gIHRocm93IGVycm9yO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGN1cnJlbnQgc3RhY2sgdHJhY2UgYXMgYSBzdHJpbmcsIGV4Y2x1ZGluZyB0aGUgY3VycmVudCBmdW5jdGlvbiBjYWxsLlxuICpcbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjdXJyZW50IHN0YWNrIHRyYWNlLCBleGNsdWRpbmcgdGhlIGN1cnJlbnQgZnVuY3Rpb24gY2FsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YWNrVHJhY2UoKTogc3RyaW5nIHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjayA/PyAnJztcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdCgnXFxuJyk7XG4gIHJldHVybiBsaW5lcy5zbGljZSgyKS5qb2luKCdcXG4nKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLDJCQUE2QjtBQUU3QixNQUFNLG9CQUFvQjtBQUUxQixNQUFNLHlCQUF5QixJQUFJLGtDQUFhO0FBQ2hELHVCQUF1QixHQUFHLG1CQUFtQixnQkFBZ0I7QUFPN0QsU0FBUyxpQkFBaUIsWUFBMkI7QUFDbkQsYUFBVyxJQUFJLE1BQU0seURBQXlELEVBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQztBQUN0RztBQU9PLFNBQVMsb0JBQW9CLFlBQTJCO0FBQzdELHlCQUF1QixLQUFLLG1CQUFtQixVQUFVO0FBQzNEO0FBUU8sU0FBUywrQkFBK0IsU0FBb0Q7QUFDakcseUJBQXVCLEdBQUcsbUJBQW1CLE9BQU87QUFDcEQsU0FBTyxNQUFNLHVCQUF1QixJQUFJLG1CQUFtQixPQUFPO0FBQ3BFO0FBYU8sU0FBUyxXQUFXLE9BQXNCO0FBQy9DLFFBQU0sVUFBVSxrQkFBa0IsS0FBSztBQUV2QyxhQUFXLFNBQVMsU0FBUztBQUMzQixRQUFJLE1BQU0seUJBQXlCO0FBQ2pDLGNBQVEsTUFBTSxVQUFVLE1BQU0sT0FBTyxTQUFTO0FBQUEsSUFDaEQsT0FBTztBQUNMLGNBQVEsTUFBTSxNQUFNLE9BQU87QUFBQSxJQUM3QjtBQUFBLEVBQ0Y7QUFDRjtBQVFPLFNBQVMsY0FBYyxPQUF3QjtBQUNwRCxTQUFPLGtCQUFrQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLE1BQU0sS0FBSyxJQUFJLE1BQU0sT0FBTyxFQUFFLEtBQUssSUFBSTtBQUNwRztBQVVBLFNBQVMsa0JBQWtCLE9BQWdCLFFBQVEsR0FBRyxVQUF3QixDQUFDLEdBQWlCO0FBQzlGLE1BQUksVUFBVSxRQUFXO0FBQ3ZCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxFQUFFLGlCQUFpQixRQUFRO0FBQzdCLFFBQUksTUFBTTtBQUVWLFFBQUksVUFBVSxNQUFNO0FBQ2xCLFlBQU07QUFBQSxJQUNSLFdBQVcsT0FBTyxVQUFVLFVBQVU7QUFDcEMsWUFBTTtBQUFBLElBQ1IsT0FBTztBQUNMLFlBQU0sS0FBSyxVQUFVLEtBQUs7QUFBQSxJQUM1QjtBQUVBLFlBQVEsS0FBSyxFQUFFLE9BQU8sU0FBUyxJQUFJLENBQUM7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksS0FBSyxNQUFNLE9BQU87QUFDN0MsVUFBUSxLQUFLLEVBQUUsT0FBTyxTQUFTLE9BQU8seUJBQXlCLEtBQUssQ0FBQztBQUVyRSxNQUFJLE1BQU0sT0FBTztBQUNmLFVBQU0sWUFBWSxNQUFNLE1BQU0sV0FBVyxLQUFLLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLENBQUMsSUFBSSxNQUFNO0FBQzlGLFlBQVEsS0FBSyxFQUFFLE9BQU8sU0FBUztBQUFBLEVBQWlCLFNBQVMsR0FBRyxDQUFDO0FBQUEsRUFDL0Q7QUFFQSxNQUFJLE1BQU0sVUFBVSxRQUFXO0FBQzdCLFlBQVEsS0FBSyxFQUFFLE9BQU8sU0FBUyxhQUFhLENBQUM7QUFDN0Msc0JBQWtCLE1BQU0sT0FBTyxRQUFRLEdBQUcsT0FBTztBQUFBLEVBQ25EO0FBRUEsU0FBTztBQUNUO0FBUU8sU0FBUyxnQkFBZ0IsT0FBdUI7QUFDckQsUUFBTTtBQUNSO0FBT08sU0FBUyxnQkFBd0I7QUFDdEMsUUFBTSxRQUFRLElBQUksTUFBTSxFQUFFLFNBQVM7QUFDbkMsUUFBTSxRQUFRLE1BQU0sTUFBTSxJQUFJO0FBQzlCLFNBQU8sTUFBTSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUk7QUFDakM7IiwKICAibmFtZXMiOiBbXQp9Cg==
109
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Vycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBFcnJvclxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVycm9yIGhhbmRsaW5nLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuXG5jb25zdCBBU1lOQ19FUlJPUl9FVkVOVCA9ICdhc3luY0Vycm9yJztcblxuY29uc3QgYXN5bmNFcnJvckV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbmFzeW5jRXJyb3JFdmVudEVtaXR0ZXIub24oQVNZTkNfRVJST1JfRVZFTlQsIGhhbmRsZUFzeW5jRXJyb3IpO1xuXG5pbnRlcmZhY2UgRXJyb3JFbnRyeSB7XG4gIGxldmVsOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc2hvdWxkQ2xlYXJBbnNpU2VxdWVuY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVtaXRzIGFuIGFzeW5jaHJvbm91cyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNFcnJvciAtIFRoZSBlcnJvciB0byBlbWl0IGFzIGFuIGFzeW5jaHJvbm91cyBlcnJvciBldmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRBc3luY0Vycm9yRXZlbnQoYXN5bmNFcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBhc3luY0Vycm9yRXZlbnRFbWl0dGVyLmVtaXQoQVNZTkNfRVJST1JfRVZFTlQsIGFzeW5jRXJyb3IpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGVycm9yIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBpbmNsdWRpbmcgbmVzdGVkIGNhdXNlcyB3aXRoIGluZGVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBjb252ZXJ0IHRvIGEgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclRvU3RyaW5nKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcnNlRXJyb3JFbnRyaWVzKGVycm9yKS5tYXAoKGVudHJ5KSA9PiAnICAnLnJlcGVhdChlbnRyeS5sZXZlbCkgKyBlbnRyeS5tZXNzYWdlKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBjdXJyZW50IHN0YWNrIHRyYWNlIGFzIGEgc3RyaW5nLCBleGNsdWRpbmcgdGhlIGN1cnJlbnQgZnVuY3Rpb24gY2FsbC5cbiAqXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzdGFjayB0cmFjZSwgZXhjbHVkaW5nIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGNhbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFja1RyYWNlKCk6IHN0cmluZyB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2sgPz8gJyc7XG4gIGNvbnN0IGxpbmVzID0gc3RhY2suc3BsaXQoJ1xcbicpO1xuICByZXR1cm4gbGluZXMuc2xpY2UoMikuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogUHJpbnRzIGFuIGVycm9yIHRvIHRoZSBjb25zb2xlLCBpbmNsdWRpbmcgbmVzdGVkIGNhdXNlcyBhbmQgb3B0aW9uYWwgQU5TSSBzZXF1ZW5jZSBjbGVhcmluZy5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgLSBUaGUgZXJyb3IgdG8gcHJpbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludEVycm9yKGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gIGNvbnN0IGVudHJpZXMgPSBwYXJzZUVycm9yRW50cmllcyhlcnJvcik7XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgaWYgKGVudHJ5LnNob3VsZENsZWFyQW5zaVNlcXVlbmNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBcXHgxYlswbSR7ZW50cnkubWVzc2FnZX1cXHgxYlswbWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVudHJ5Lm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBldmVudCBoYW5kbGVyIGZvciBhc3luY2hyb25vdXMgZXJyb3JzLlxuICpcbiAqIEBwYXJhbSBoYW5kbGVyIC0gVGhlIGhhbmRsZXIgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYW4gYXN5bmNocm9ub3VzIGVycm9yIGV2ZW50IG9jY3Vycy5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdG8gdW5yZWdpc3RlciB0aGUgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcihoYW5kbGVyOiAoYXN5bmNFcnJvcjogdW5rbm93bikgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuICBhc3luY0Vycm9yRXZlbnRFbWl0dGVyLm9uKEFTWU5DX0VSUk9SX0VWRU5ULCBoYW5kbGVyKTtcbiAgcmV0dXJuICgpID0+IGFzeW5jRXJyb3JFdmVudEVtaXR0ZXIub2ZmKEFTWU5DX0VSUk9SX0VWRU5ULCBoYW5kbGVyKTtcbn1cblxuLyoqXG4gKiBUaHJvd3MgYW4gZXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIHRocm93LlxuICogQHJldHVybnMgQSBuZXZlci1yZXR1cm5pbmcgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0V4cHJlc3Npb24oZXJyb3I6IHVua25vd24pOiBuZXZlciB7XG4gIHRocm93IGVycm9yO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgYXN5bmNocm9ub3VzIGVycm9ycyBieSBwcmludGluZyB0aGVtLlxuICpcbiAqIEBwYXJhbSBhc3luY0Vycm9yIC0gVGhlIGFzeW5jaHJvbm91cyBlcnJvciB0byBoYW5kbGUuXG4gKi9cbmZ1bmN0aW9uIGhhbmRsZUFzeW5jRXJyb3IoYXN5bmNFcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBwcmludEVycm9yKG5ldyBFcnJvcignQW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycmVkIGV4ZWN1dGluZyBhc3luYyBvcGVyYXRpb24nLCB7IGNhdXNlOiBhc3luY0Vycm9yIH0pKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYW4gZXJyb3IgaW50byBhbiBhcnJheSBvZiBFcnJvckVudHJ5IG9iamVjdHMsIGluY2x1ZGluZyBuZXN0ZWQgY2F1c2VzLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBwYXJzZS5cbiAqIEBwYXJhbSBsZXZlbCAtIFRoZSBjdXJyZW50IGluZGVudGF0aW9uIGxldmVsIGZvciBuZXN0ZWQgY2F1c2VzLlxuICogQHBhcmFtIGVudHJpZXMgLSBUaGUgYXJyYXkgb2YgRXJyb3JFbnRyeSBvYmplY3RzIHRvIHBvcHVsYXRlLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgRXJyb3JFbnRyeSBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUgZXJyb3IgYW5kIGl0cyBjYXVzZXMuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRXJyb3JFbnRyaWVzKGVycm9yOiB1bmtub3duLCBsZXZlbCA9IDAsIGVudHJpZXM6IEVycm9yRW50cnlbXSA9IFtdKTogRXJyb3JFbnRyeVtdIHtcbiAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxuXG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgbGV0IHN0ciA9ICcnO1xuXG4gICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICBzdHIgPSAnKG51bGwpJztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHN0ciA9IGVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHIgPSBKU09OLnN0cmluZ2lmeShlcnJvcik7XG4gICAgfVxuXG4gICAgZW50cmllcy5wdXNoKHsgbGV2ZWwsIG1lc3NhZ2U6IHN0ciB9KTtcbiAgICByZXR1cm4gZW50cmllcztcbiAgfVxuXG4gIGNvbnN0IHRpdGxlID0gYCR7ZXJyb3IubmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gO1xuICBlbnRyaWVzLnB1c2goeyBsZXZlbCwgbWVzc2FnZTogdGl0bGUsIHNob3VsZENsZWFyQW5zaVNlcXVlbmNlOiB0cnVlIH0pO1xuXG4gIGlmIChlcnJvci5zdGFjaykge1xuICAgIGNvbnN0IHJlc3RTdGFjayA9IGVycm9yLnN0YWNrLnN0YXJ0c1dpdGgodGl0bGUpID8gZXJyb3Iuc3RhY2suc2xpY2UodGl0bGUubGVuZ3RoICsgMSkgOiBlcnJvci5zdGFjaztcbiAgICBlbnRyaWVzLnB1c2goeyBsZXZlbCwgbWVzc2FnZTogYEVycm9yIHN0YWNrOlxcbiR7cmVzdFN0YWNrfWAgfSk7XG4gIH1cblxuICBpZiAoZXJyb3IuY2F1c2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGVudHJpZXMucHVzaCh7IGxldmVsLCBtZXNzYWdlOiAnQ2F1c2VkIGJ5OicgfSk7XG4gICAgcGFyc2VFcnJvckVudHJpZXMoZXJyb3IuY2F1c2UsIGxldmVsICsgMSwgZW50cmllcyk7XG4gIH1cblxuICByZXR1cm4gZW50cmllcztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLDJCQUE2QjtBQUU3QixNQUFNLG9CQUFvQjtBQUUxQixNQUFNLHlCQUF5QixJQUFJLGtDQUFhO0FBQ2hELHVCQUF1QixHQUFHLG1CQUFtQixnQkFBZ0I7QUFhdEQsU0FBUyxvQkFBb0IsWUFBMkI7QUFDN0QseUJBQXVCLEtBQUssbUJBQW1CLFVBQVU7QUFDM0Q7QUFRTyxTQUFTLGNBQWMsT0FBd0I7QUFDcEQsU0FBTyxrQkFBa0IsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssT0FBTyxNQUFNLEtBQUssSUFBSSxNQUFNLE9BQU8sRUFBRSxLQUFLLElBQUk7QUFDcEc7QUFPTyxTQUFTLGdCQUF3QjtBQUN0QyxRQUFNLFFBQVEsSUFBSSxNQUFNLEVBQUUsU0FBUztBQUNuQyxRQUFNLFFBQVEsTUFBTSxNQUFNLElBQUk7QUFDOUIsU0FBTyxNQUFNLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSTtBQUNqQztBQU9PLFNBQVMsV0FBVyxPQUFzQjtBQUMvQyxRQUFNLFVBQVUsa0JBQWtCLEtBQUs7QUFFdkMsYUFBVyxTQUFTLFNBQVM7QUFDM0IsUUFBSSxNQUFNLHlCQUF5QjtBQUNqQyxjQUFRLE1BQU0sVUFBVSxNQUFNLE9BQU8sU0FBUztBQUFBLElBQ2hELE9BQU87QUFDTCxjQUFRLE1BQU0sTUFBTSxPQUFPO0FBQUEsSUFDN0I7QUFBQSxFQUNGO0FBQ0Y7QUFRTyxTQUFTLCtCQUErQixTQUFvRDtBQUNqRyx5QkFBdUIsR0FBRyxtQkFBbUIsT0FBTztBQUNwRCxTQUFPLE1BQU0sdUJBQXVCLElBQUksbUJBQW1CLE9BQU87QUFDcEU7QUFRTyxTQUFTLGdCQUFnQixPQUF1QjtBQUNyRCxRQUFNO0FBQ1I7QUFPQSxTQUFTLGlCQUFpQixZQUEyQjtBQUNuRCxhQUFXLElBQUksTUFBTSx5REFBeUQsRUFBRSxPQUFPLFdBQVcsQ0FBQyxDQUFDO0FBQ3RHO0FBVUEsU0FBUyxrQkFBa0IsT0FBZ0IsUUFBUSxHQUFHLFVBQXdCLENBQUMsR0FBaUI7QUFDOUYsTUFBSSxVQUFVLFFBQVc7QUFDdkIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLEVBQUUsaUJBQWlCLFFBQVE7QUFDN0IsUUFBSSxNQUFNO0FBRVYsUUFBSSxVQUFVLE1BQU07QUFDbEIsWUFBTTtBQUFBLElBQ1IsV0FBVyxPQUFPLFVBQVUsVUFBVTtBQUNwQyxZQUFNO0FBQUEsSUFDUixPQUFPO0FBQ0wsWUFBTSxLQUFLLFVBQVUsS0FBSztBQUFBLElBQzVCO0FBRUEsWUFBUSxLQUFLLEVBQUUsT0FBTyxTQUFTLElBQUksQ0FBQztBQUNwQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxLQUFLLE1BQU0sT0FBTztBQUM3QyxVQUFRLEtBQUssRUFBRSxPQUFPLFNBQVMsT0FBTyx5QkFBeUIsS0FBSyxDQUFDO0FBRXJFLE1BQUksTUFBTSxPQUFPO0FBQ2YsVUFBTSxZQUFZLE1BQU0sTUFBTSxXQUFXLEtBQUssSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsQ0FBQyxJQUFJLE1BQU07QUFDOUYsWUFBUSxLQUFLLEVBQUUsT0FBTyxTQUFTO0FBQUEsRUFBaUIsU0FBUyxHQUFHLENBQUM7QUFBQSxFQUMvRDtBQUVBLE1BQUksTUFBTSxVQUFVLFFBQVc7QUFDN0IsWUFBUSxLQUFLLEVBQUUsT0FBTyxTQUFTLGFBQWEsQ0FBQztBQUM3QyxzQkFBa0IsTUFBTSxPQUFPLFFBQVEsR0FBRyxPQUFPO0FBQUEsRUFDbkQ7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -9,12 +9,18 @@
9
9
  */
10
10
  export declare function emitAsyncErrorEvent(asyncError: unknown): void;
11
11
  /**
12
- * Registers an event handler for asynchronous errors.
12
+ * Converts an error to a string representation, including nested causes with indentation.
13
13
  *
14
- * @param handler - The handler function to be called when an asynchronous error event occurs.
15
- * @returns A function to unregister the handler.
14
+ * @param error - The error to convert to a string.
15
+ * @returns The string representation of the error.
16
16
  */
17
- export declare function registerAsyncErrorEventHandler(handler: (asyncError: unknown) => void): () => void;
17
+ export declare function errorToString(error: unknown): string;
18
+ /**
19
+ * Gets the current stack trace as a string, excluding the current function call.
20
+ *
21
+ * @returns A string representation of the current stack trace, excluding the current function call.
22
+ */
23
+ export declare function getStackTrace(): string;
18
24
  /**
19
25
  * Prints an error to the console, including nested causes and optional ANSI sequence clearing.
20
26
  *
@@ -22,12 +28,12 @@ export declare function registerAsyncErrorEventHandler(handler: (asyncError: unk
22
28
  */
23
29
  export declare function printError(error: unknown): void;
24
30
  /**
25
- * Converts an error to a string representation, including nested causes with indentation.
31
+ * Registers an event handler for asynchronous errors.
26
32
  *
27
- * @param error - The error to convert to a string.
28
- * @returns The string representation of the error.
33
+ * @param handler - The handler function to be called when an asynchronous error event occurs.
34
+ * @returns A function to unregister the handler.
29
35
  */
30
- export declare function errorToString(error: unknown): string;
36
+ export declare function registerAsyncErrorEventHandler(handler: (asyncError: unknown) => void): () => void;
31
37
  /**
32
38
  * Throws an error with the specified message.
33
39
  *
@@ -35,9 +41,3 @@ export declare function errorToString(error: unknown): string;
35
41
  * @returns A never-returning function.
36
42
  */
37
43
  export declare function throwExpression(error: unknown): never;
38
- /**
39
- * Gets the current stack trace as a string, excluding the current function call.
40
- *
41
- * @returns A string representation of the current stack trace, excluding the current function call.
42
- */
43
- export declare function getStackTrace(): string;